/opt/alt/python37/lib/python3.7/site-packages/babel/__pycache__
Edit: /opt/alt/python37/lib/python3.7/site-packages/babel/__pycache__/util.cpython-37.pyc (7004B)
B
` @ s d Z ddlZddlZddlmZmZ ddlZddlZddlZddl m
Z
mZ ddlZ
ddlmZ e Zdd ZedejZd d
ZedZdd
dZdd ZG dd dejZdddZejZG dd deZe
jZ ej!Z!ej"Z"ej#Z#ej$Z$ej%Z%ej&Z&dS )z
babel.util
~~~~~~~~~~
Various utility classes and functions.
:copyright: (c) 2013-2021 by the Babel Team.
:license: BSD, see LICENSE for more details.
N) timedeltatzinfo)izipimap) localtimec c s4 t }x(t| D ]}||kr|V || qW dS )a Yield all items in an iterable collection that are distinct.
Unlike when using sets for a similar effect, the original ordering of the
items in the collection is preserved by this function.
>>> print(list(distinct([1, 2, 1, 3, 4, 4])))
[1, 2, 3, 4]
>>> print(list(distinct('foobar')))
['f', 'o', 'b', 'a', 'r']
:param iterable: the iterable collection providing the data
N)setiteradd)iterableseenitem r
;/opt/alt/python37/lib/python3.7/site-packages/babel/util.pydistinct s
r s( [ \t\f]* \# .* coding[=:][ \t]*([-\w.]+)c
C s | }| d z| }|tj}|r>|ttjd }t|}|syddl }|
|d W n tt
tfk
r Y nX | }t|}|r|r|dd}|dkrt
d|dS |r|ddS dS W d| | X dS )a/ Deduce the encoding of a source file from magic comment.
It does this in the same way as the `Python interpreter`__
.. __: https://docs.python.org/3.4/reference/lexical_analysis.html#encoding-declarations
The ``fp`` argument should be a seekable file object.
(From Jeff Dairiki)
r Nzlatin-1 zutf-8zencoding problem: {0} with BOM)tellseekreadline
startswithcodecsBOM_UTF8lenPYTHON_MAGIC_COMMENT_rematchastparsedecodeImportErrorSyntaxErrorUnicodeEncodeErrorgroupformat)fpposZline1Zhas_bommr Zline2Zmagic_comment_encodingr
r
r parse_encoding1 s8
r% z'from\s+__future__\s+import\s+\(*(.+)\)*latin-1c
C s ddl }| }| d d}z| |}tdd|}tdd|}tdd|}xTt|D ]F}d d
| d
dD }x&|D ]}t||d} | r|| jO }qW qdW W d| | X |S )
zRParse the compiler flags by :mod:`__future__` from the given Python
code.
r Nzimport\s*\([\r\n]+zimport (z,\s*[\r\n]+z, z\\\s*[\r\n]+ c S s g | ]}| d qS )z())strip).0xr
r
r
} s z&parse_future_flags..r ,)
__future__r r readr resubPYTHON_FUTURE_IMPORT_refinditerr splitgetattrZ
compiler_flag)
r" encodingr- r# flagsZbodyr$ namesnameZfeaturer
r
r parse_future_flagsg s"
r9 c C s ddddddd}| dr0dg}| d d
} n"| drNdg}| dd
} ng }xHttd
| D ]4\}}|d r||| qd|rd|t| qdW td|d |t j
d}|d
k S )a Extended pathname pattern matching.
This function is similar to what is provided by the ``fnmatch`` module in
the Python standard library, but:
* can match complete (relative or absolute) path names, and not just file
names, and
* also supports a convenience pattern ("**") to match files at any
directory level.
Examples:
>>> pathmatch('**.py', 'bar.py')
True
>>> pathmatch('**.py', 'foo/bar/baz.py')
True
>>> pathmatch('**.py', 'templates/index.html')
False
>>> pathmatch('./foo/**.py', 'foo/bar/baz.py')
True
>>> pathmatch('./foo/**.py', 'bar/baz.py')
False
>>> pathmatch('^foo/**.py', 'foo/bar/baz.py')
True
>>> pathmatch('^foo/**.py', 'bar/baz.py')
False
>>> pathmatch('**/templates/*.html', 'templates/index.html')
True
>>> pathmatch('**/templates/*.html', 'templates/foo/bar.html')
False
:param pattern: the glob pattern
:param filename: the path name of the file to match against
z[^/]z[^/]/z[^/]+z[^/]+/z (?:.+/)*?z(?:.+/)*?[^/]+)?z?/*z*/z**/z**^r Nz./ z ([?*]+/?) $/)r enumerater/ r3 appendescaper joinreplaceossep)patternfilenameZsymbolsZbufidxpartr r
r
r pathmatch s( '
rL c @ s e Zd ZedZdS )TextWrapperz((\s+|(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))N)__name__
__module____qualname__r/ compileZ
wordsep_rer
r
r
r rM s rM F r> c C s t |||dd}|| S )a Simple wrapper around the ``textwrap.wrap`` function in the standard
library. This version does not wrap lines on hyphens in words.
:param text: the text to wrap
:param width: the maximum line width
:param initial_indent: string that will be prepended to the first line of
wrapped output
:param subsequent_indent: string that will be prepended to all lines save
the first of wrapped output
F)widthinitial_indentsubsequent_indentZbreak_long_words)rM Zwrap)textrS rT rU wrapperr
r
r wraptext s rX c @ sB e Zd ZdZdddZdd Zdd Zd d
Zdd Zd
d Z dS )FixedOffsetTimezonez&Fixed offset in minutes east from UTC.Nc C s&