a
    Ø
þd’|  ã                ?   @   sÐ  d Z ddlZddlZddlZddlmZ ddlmZ G dd„ dejƒZ	dd„ Z
d	d
„ Zdd„ Zdd„ Ze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 ¡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 d0¡e d1¡e d2¡e d3¡e d4¡e d5¡e d6¡e d7¡e d8¡e d9¡e d:¡e d;¡e d<¡e d=¡e d>¡e d?¡e d@¡e dA¡e dB¡e dC¡e dD¡e dE¡e dF¡e dG¡e dH¡e dI¡e dJ¡dK<ZdLdM„ ZdNdO„ ZdPdQ„ ZdRdS„ ZeeeeedTZeƒ efeƒ efeƒ efeƒ efgZdUdV„ ZdWdX„ ZdYdZ„ Zd[d\„ Zd]d^„ Zd_d`„ Zdadb„ Zeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedc<Z ddde„ Z!dfdg„ Z"dhdi„ Z#djdk„ Z$dldm„ Z%dnZ&eZ'ea(ej) *e +do¡pªej) ,dp¡dqdr¡Z-dsZ.dtZ/duZ0da1et(ƒ ƒ dS )vz!Python formatting style settings.é    N)ÚConfigParser)Úerrorsc                   @   s   e Zd ZdZdS )ÚStyleConfigErrorz>Raised when there's a problem reading the style configuration.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r	   r	   ú[/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/yapf/yapflib/style.pyr      s   r   c                 C   s   t |  S )zGet a style setting.)Ú_style)Úsetting_namer	   r	   r
   ÚGet   s    r   c                 C   s   t  | |¡S )zCGet a style setting or default value if the setting does not exist.)r   Úget)r   Údefault_valuer	   r	   r
   ÚGetOrDefault"   s    r   c                   C   s   t S )z0Return dict mapping style names to help strings.)Ú_STYLE_HELPr	   r	   r	   r
   ÚHelp'   s    r   c                 C   s   t | ƒ}|r|a| adS )zSet a style dict.N)Ú_GetStyleFactoryÚ_GLOBAL_STYLE_FACTORYr   )ÚstyleÚfactoryr	   r	   r
   ÚSetGlobalStyle,   s    r   z4      Align closing bracket with visual indentation.z:      Allow lambdas to be formatted on more than one line.zá      Allow dictionary keys to exist on multiple lines. For example:

        x = {
            ('this is the first element of a tuple',
             'this is the second element of a tuple'):
                 value,
        }zU      Allow splitting before a default / named assignment in an argument list.
      z/      Allow splits before the dictionary value.a®        Let spacing indicate operator precedence. For example:

        a = 1 * 2 + 3 / 4
        b = 1 / 2 - 3 * 4
        c = (1 + 2) * (3 - 4)
        d = (1 - 2) / (3 + 4)
        e = 1 * 2 - 3
        f = 1 + 2 + 3 + 4

    will be formatted as follows to indicate precedence:

        a = 1*2 + 3/4
        b = 1/2 - 3*4
        c = (1+2) * (3-4)
        d = (1-2) / (3+4)
        e = 1*2 - 3
        f = 1 + 2 + 3 + 4

      zë      Insert a blank line before a 'def' or 'class' immediately nested
      within another 'def' or 'class'. For example:

        class Foo:
                           # <------ this blank line
          def method():
            ...z9      Insert a blank line before a class-level docstring.z4      Insert a blank line before a module docstring.zW      Number of blank lines surrounding top-level function and class
      definitions.zU      Number of blank lines between top-level imports and variable
      definitions.a        Do not split consecutive brackets. Only relevant when
      dedent_closing_brackets is set. For example:

         call_func_that_takes_a_dict(
             {
                 'key1': 'value1',
                 'key2': 'value2',
             }
         )

      would reformat to:

         call_func_that_takes_a_dict({
             'key1': 'value1',
             'key2': 'value2',
         })z      The column limit.a8        The style for continuation alignment. Possible values are:

      - SPACE: Use spaces for continuation alignment. This is default behavior.
      - FIXED: Use fixed number (CONTINUATION_INDENT_WIDTH) of columns
        (ie: CONTINUATION_INDENT_WIDTH/INDENT_WIDTH tabs or
        CONTINUATION_INDENT_WIDTH spaces) for continuation alignment.
      - VALIGN-RIGHT: Vertically align continuation lines to multiple of
        INDENT_WIDTH columns. Slightly right (one tab or a few spaces) if
        cannot vertically align continuation lines with indent characters.z/      Indent width used for line continuations.aà        Put closing brackets on a separate line, dedented, if the bracketed
      expression can't fit in a single line. Applies to all kinds of brackets,
      including function definitions and calls. For example:

        config = {
            'key1': 'value1',
            'key2': 'value2',
        }        # <--- this bracket is dedented and on a separate line

        time_series = self.remote_client.query_entity_counters(
            entity='dev3246.region1',
            key='dns.query_latency_tcp',
            transform=Transformation.AVERAGE(window=timedelta(seconds=60)),
            start_ts=now()-timedelta(days=3),
            end_ts=now(),
        )        # <--- this bracket is dedented and on a separate line
      zt      Disable the heuristic which places each list element on a separate line
      if the list is comma-terminated.z4      Place each dictionary entry onto its own line.z›      Require multiline dictionary even if it would normally fit on one line.
      For example:

        config = {
            'key1': 'value1'
        }z¹      The regex for an i18n comment. The presence of this comment stops
      reformatting of that line, because the comments are required to be
      next to the string they translate.zµ      The i18n function call names. The presence of this function stops
      reformattting on that line, because the string it has cannot be moved
      away from the i18n comment.aê        Put closing brackets on a separate line, indented, if the bracketed
      expression can't fit in a single line. Applies to all kinds of brackets,
      including function definitions and calls. For example:

        config = {
            'key1': 'value1',
            'key2': 'value2',
            }        # <--- this bracket is indented and on a separate line

        time_series = self.remote_client.query_entity_counters(
            entity='dev3246.region1',
            key='dns.query_latency_tcp',
            transform=Transformation.AVERAGE(window=timedelta(seconds=60)),
            start_ts=now()-timedelta(days=3),
            end_ts=now(),
            )        # <--- this bracket is indented and on a separate line
        zù      Indent the dictionary value if it cannot fit on the same line as the
      dictionary key. For example:

        config = {
            'key1':
                'value1',
            'key2': value1 +
                    value2,
        }
      z3      The number of columns to use for indentation.z      Indent blank lines.zH      Join short lines into one line. E.g., single line 'if' statements.zÃ      Do not include spaces around selected binary operators. For example:

        1 + 2 * 3 - 4 / 5

      will be formatted as follows when configured with "*,/":

        1 + 2*3 - 4/5
      zW      Insert a space between the ending comma and closing bracket of a list,
      etc.zÀ      Use spaces inside brackets, braces, and parentheses.  For example:

        method_call( 1 )
        my_dict[ 3 ][ 1 ][ get_index( *args, **kwargs ) ]
        my_set = { 1, 2, 3 }
      z+      Use spaces around the power operator.z1      Use spaces around default or named assigns.zŸ      Adds a space after the opening '{' and before the ending '}' dict
      delimiters.

        {1: 2}

      will be formatted as:

        { 1: 2 }
      zŸ      Adds a space after the opening '[' and before the ending ']' list
      delimiters.

        [1, 2]

      will be formatted as:

        [ 1, 2 ]
      zi      Use spaces around the subscript / slice operator.  For example:

        my_list[1 : 10 : 2]
      z¦      Adds a space after the opening '(' and before the ending ')' tuple
      delimiters.

        (1, 2, 3)

      will be formatted as:

        ( 1, 2, 3 )
      a        The number of spaces required before a trailing comment.
      This can be a single value (representing the number of spaces
      before each trailing comment) or list of values (representing
      alignment column values; trailing comments within a block will
      be aligned to the first column value that is greater than the maximum
      line length within the block). For example:

      With spaces_before_comment=5:

        1 + 1 # Adding values

      will be formatted as:

        1 + 1     # Adding values <-- 5 spaces between the end of the
                  # statement and comment

      With spaces_before_comment=15, 20:

        1 + 1 # Adding values
        two + two # More adding

        longer_statement # This is a longer statement
        short # This is a shorter statement

        a_very_long_statement_that_extends_beyond_the_final_column # Comment
        short # This is a shorter statement

      will be formatted as:

        1 + 1          # Adding values <-- end of line comments in block
                       # aligned to col 15
        two + two      # More adding

        longer_statement    # This is a longer statement <-- end of line
                            # comments in block aligned to col 20
        short               # This is a shorter statement

        a_very_long_statement_that_extends_beyond_the_final_column  # Comment <-- the end of line comments are aligned based on the line length
        short                                                       # This is a shorter statement

      zQ      Split before arguments if the argument list is terminated by a
      comma.z      Split before argumentszd      Split before arguments, but do not split all subexpressions recursively
      (unless needed).zf      Set to True to prefer splitting before '+', '-', '*', '/', '//', or '@'
      rather than after.zU      Set to True to prefer splitting before '&', '|' or '^' rather than
      after.zd      Split before the closing bracket if a list or dict literal doesn't fit on
      a single line.zó      Split before a dictionary or set generator (comp_for). For example, note
      the split before the 'for':

        foo = {
            variable: 'Hello world, have a nice day!'
            for variable in bar if variable != 42
        }a)        Split before the '.' if we need to split a longer expression:

        foo = ('This is a really long string: {}, {}, {}, {}'.format(a, b, c, d))

      would reformat to something like:

        foo = ('This is a really long string: {}, {}, {}, {}'
               .format(a, b, c, d))
      zr      Split after the opening paren which surrounds an expression if it doesn't
      fit on a single line.
      zg      If an argument / parameter list is going to be split, then split before
      the first argument.zS      Set to True to prefer splitting before 'and' or 'or' rather than
      after.z4      Split named assignments onto individual lines.aÇ        Set to True to split list comprehensions and generators that have
      non-trivial expressions and multiple clauses before each of these
      clauses. For example:

        result = [
            a_long_var + 100 for a_long_var in xrange(1000)
            if a_long_var % 10]

      would reformat to something like:

        result = [
            a_long_var + 100
            for a_long_var in xrange(1000)
            if a_long_var % 10]
      z@      The penalty for splitting right after the opening bracket.z@      The penalty for splitting the line after a unary operator.zl      The penalty of splitting the line around the '+', '-', '*', '/', '//',
      ``%``, and '@' operators.z>      The penalty for splitting right before an if expression.zU      The penalty of splitting the line around the '&', '|', and '^'
      operators.zS      The penalty for splitting a list comprehension or generator
      expression.z7      The penalty for characters over the column limit.z      The penalty incurred by adding a line split to the logical line. The
      more line splits added the higher the penalty.aõ        The penalty of splitting a list of "import as" names. For example:

        from a_very_long_or_indented_module_name_yada_yad import (long_argument_1,
                                                                  long_argument_2,
                                                                  long_argument_3)

      would reformat to something like:

        from a_very_long_or_indented_module_name_yada_yad import (
            long_argument_1, long_argument_2, long_argument_3)
      zR      The penalty of splitting the line around the 'and' and 'or'
      operators.z,      Use the Tab character for indentation.)<Ú(ALIGN_CLOSING_BRACKET_WITH_VISUAL_INDENTÚALLOW_MULTILINE_LAMBDASÚALLOW_MULTILINE_DICTIONARY_KEYSÚ+ALLOW_SPLIT_BEFORE_DEFAULT_OR_NAMED_ASSIGNSÚALLOW_SPLIT_BEFORE_DICT_VALUEÚ ARITHMETIC_PRECEDENCE_INDICATIONÚ%BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEFÚ!BLANK_LINE_BEFORE_CLASS_DOCSTRINGÚ"BLANK_LINE_BEFORE_MODULE_DOCSTRINGÚ'BLANK_LINES_AROUND_TOP_LEVEL_DEFINITIONÚ3BLANK_LINES_BETWEEN_TOP_LEVEL_IMPORTS_AND_VARIABLESÚCOALESCE_BRACKETSÚCOLUMN_LIMITÚCONTINUATION_ALIGN_STYLEÚCONTINUATION_INDENT_WIDTHÚDEDENT_CLOSING_BRACKETSÚDISABLE_ENDING_COMMA_HEURISTICÚ EACH_DICT_ENTRY_ON_SEPARATE_LINEÚFORCE_MULTILINE_DICTÚI18N_COMMENTÚI18N_FUNCTION_CALLÚINDENT_CLOSING_BRACKETSÚINDENT_DICTIONARY_VALUEÚINDENT_WIDTHÚINDENT_BLANK_LINESÚJOIN_MULTIPLE_LINESÚ*NO_SPACES_AROUND_SELECTED_BINARY_OPERATORSÚ.SPACE_BETWEEN_ENDING_COMMA_AND_CLOSING_BRACKETÚSPACE_INSIDE_BRACKETSÚSPACES_AROUND_POWER_OPERATORÚ%SPACES_AROUND_DEFAULT_OR_NAMED_ASSIGNÚSPACES_AROUND_DICT_DELIMITERSÚSPACES_AROUND_LIST_DELIMITERSÚSPACES_AROUND_SUBSCRIPT_COLONÚSPACES_AROUND_TUPLE_DELIMITERSÚSPACES_BEFORE_COMMENTÚ%SPLIT_ARGUMENTS_WHEN_COMMA_TERMINATEDÚ SPLIT_ALL_COMMA_SEPARATED_VALUESÚ*SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUESÚ SPLIT_BEFORE_ARITHMETIC_OPERATORÚSPLIT_BEFORE_BITWISE_OPERATORÚSPLIT_BEFORE_CLOSING_BRACKETÚSPLIT_BEFORE_DICT_SET_GENERATORÚSPLIT_BEFORE_DOTÚ+SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PARENÚSPLIT_BEFORE_FIRST_ARGUMENTÚSPLIT_BEFORE_LOGICAL_OPERATORÚSPLIT_BEFORE_NAMED_ASSIGNSÚSPLIT_COMPLEX_COMPREHENSIONÚ#SPLIT_PENALTY_AFTER_OPENING_BRACKETÚ"SPLIT_PENALTY_AFTER_UNARY_OPERATORÚ!SPLIT_PENALTY_ARITHMETIC_OPERATORÚSPLIT_PENALTY_BEFORE_IF_EXPRÚSPLIT_PENALTY_BITWISE_OPERATORÚSPLIT_PENALTY_COMPREHENSIONÚSPLIT_PENALTY_EXCESS_CHARACTERÚ"SPLIT_PENALTY_FOR_ADDED_LINE_SPLITÚSPLIT_PENALTY_IMPORT_NAMESÚSPLIT_PENALTY_LOGICAL_OPERATORÚUSE_TABSc                >   C   s‚   t ddddddddddddddddddddddddddtƒ ddddddddddddddddddddddd	d
d	dd	ddddd	dd<S )z!Create the PEP8 formatting style.TFé   é   éO   ÚSPACEé   Ú i,  i'  r   éP   iX  é   ©<r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r-   r(   r)   r*   r+   r,   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   )ÚdictÚsetr	   r	   r	   r
   ÚCreatePEP8Style¢  s|    Är_   c                  C   sv   t ƒ } d| d< d| d< d| d< d| d< d	| d
< ddg| d< d| d< d| d< d| d< d| d< d| d< d| d< d| d< | S )z#Create the Google formatting style.Fr   rZ   r$   Tr.   rX   r/   z#\..*r+   ZN_Ú_r,   r1   r3   r@   rB   rF   rH   i4  rN   ©r_   ©r   r	   r	   r
   ÚCreateGoogleStyleä  s    rc   c                  C   s:   t ƒ } d| d< d| d< d| d< d| d< d| d< d| d	< | S )
z!Create the YAPF formatting style.Tr   Fr   rT   r/   r@   rC   rD   )rc   rb   r	   r	   r
   ÚCreateYapfStyle÷  s    rd   c                  C   sr   t ƒ } d| d< d| d< d| d< d| d< d| d< d| d	< d| d
< d| d< d| d< d| d< d| d< d| d< d| d< | S )z%Create the Facebook formatting style.Fr   r   rZ   r$   Tr'   r-   r.   r1   rT   r;   r   rI   r[   rL   rP   rF   r@   ra   rb   r	   r	   r
   ÚCreateFacebookStyle  s    re   )Úpep8ÚgoogleZfacebookÚyapfc                 C   s"   t D ]\}}| |kr|  S qd S ©N©Ú_DEFAULT_STYLE_TO_FACTORY)r   Ú	def_styler   r	   r	   r
   r   %  s    
r   c                 C   sB   d}| r6|   d¡ dd¡ ¡ }||vr>td| f ƒ‚n|d }|S )z=Option value converter for a continuation align style string.)rW   ZFIXEDzVALIGN-RIGHTú"'r`   ú-z$unknown continuation align style: %rr   )ÚstripÚreplaceÚupperÚ
ValueError)ÚsZaccepted_stylesÚrr	   r	   r
   Ú&_ContinuationAlignStyleStringConverter,  s    ru   c                 C   s   dd„ |   d¡D ƒS )z=Option value converter for a comma-separated list of strings.c                 S   s   g | ]}|  ¡ ‘qS r	   ©ro   ©Ú.0Úpartr	   r	   r
   Ú
<listcomp>:  ó    z(_StringListConverter.<locals>.<listcomp>ú,)Úsplit©rs   r	   r	   r
   Ú_StringListConverter8  s    r   c                 C   s8   t | ƒdkr$| d dv r$| dd… } dd„ |  d¡D ƒS )	z<Option value converter for a comma-separated set of strings.rT   r   rm   rU   éÿÿÿÿc                 S   s   h | ]}|  ¡ ’qS r	   rv   rw   r	   r	   r
   Ú	<setcomp>A  r{   z&_StringSetConverter.<locals>.<setcomp>r|   )Úlenr}   r~   r	   r	   r
   Ú_StringSetConverter=  s    rƒ   c                 C   s   t j|  ¡  S )z%Option value converter for a boolean.)r   ÚBOOLEAN_STATESÚlowerr~   r	   r	   r
   Ú_BoolConverterD  s    r†   c                 C   s<   |   ¡ } |  d¡r(|  d¡r(| dd… } dd„ |  d¡D ƒS )z>Option value converter for a comma-separated list of integers.ú[ú]rU   r€   c                 S   s    g | ]}|  ¡ rt|  ¡ ƒ‘qS r	   )ro   Úintrw   r	   r	   r
   rz   O  r{   z%_IntListConverter.<locals>.<listcomp>r|   )ro   Ú
startswithÚendswithr}   r~   r	   r	   r
   Ú_IntListConverterI  s    rŒ   c                 C   s<   t | ƒdkr$| d dv r$| dd… } d| v r4t| ƒS t| ƒS )z:Option value converter for an integer or list of integers.rT   r   rm   rU   r€   r|   )r‚   rŒ   r‰   r~   r	   r	   r
   Ú_IntOrIntListConverterR  s    r   r\   c                 C   sœ   dd„ }d}| du r>|ƒ D ]}t |krd} q0q|s8t S tƒ S t| tƒrRt| ƒ}nBt| tƒr”t |  ¡ ¡}|durx|ƒ S |  	d¡rŒt
| ƒ}nt| ƒ}t|ƒS )aû  Create a style dict from the given config.

  Arguments:
    style_config: either a style name or a file name. The file is expected to
      contain settings. It can have a special BASED_ON_STYLE setting naming the
      style which it derives from. If no such setting is found, it derives from
      the default style. When style_config is None, the _GLOBAL_STYLE_FACTORY
      config is created.

  Returns:
    A style dict.

  Raises:
    StyleConfigError: if an unknown style option was encountered.
  c                  s   s   t D ]\} }| V  qd S ri   rj   )r   r`   r	   r	   r
   ÚGlobalStyles±  s    z+CreateStyleFromConfig.<locals>.GlobalStylesFNTÚ{)r   r   Ú
isinstancer]   Ú!_CreateConfigParserFromConfigDictÚstrÚ_STYLE_NAME_TO_FACTORYr   r…   rŠ   Ú#_CreateConfigParserFromConfigStringÚ!_CreateConfigParserFromConfigFileÚ_CreateStyleFromConfigParser)Zstyle_configrŽ   rl   r   ÚconfigZstyle_factoryr	   r	   r
   ÚCreateStyleFromConfig   s(    





r˜   c                 C   s8   t ƒ }| d¡ |  ¡ D ]\}}| d|t|ƒ¡ q|S )Nr   )r   Úadd_sectionÚitemsr^   r’   )Zconfig_dictr—   ÚkeyÚvaluer	   r	   r
   r‘   Î  s
    
r‘   c                 C   s`   | d dks| d dkr&t d | ¡ƒ‚tƒ }| d¡ t d| ¡D ]\}}}| d||¡ qB|S )zDGiven a config string from the command line, return a config parser.r   r   r€   Ú}z Invalid style dict syntax: '{}'.r   zJ([a-zA-Z0-9_]+)\s*[:=]\s*(?:((?P<quote>[\'"]).*?(?P=quote)|[a-zA-Z0-9_]+)))r   Úformatr   r™   ÚreÚfindallr^   )Zconfig_stringr—   r›   rœ   r`   r	   r	   r
   r”   Ö  s    ÿ
ûr”   c                 C   sª  t j | ¡std | ¡ƒ‚tƒ }|  t¡räzddl}W n t	yR   t
 d¡‚Y n0 t| dƒv}| |¡}| di ¡ dd¡}|du r”td | ¡ƒ‚| d	¡ | ¡ D ]\}}| d	|t|ƒ¡ q¦|W  d  ƒ S 1 sÚ0    Y  t| ƒ¨}| |¡ |  t¡r0| d¡std
 | ¡ƒ‚|W  d  ƒ S |  t¡rh| d	¡sVtd | ¡ƒ‚|W  d  ƒ S | d	¡s‚td | ¡ƒ‚|W  d  ƒ S 1 sœ0    Y  dS )z/Read the file and return a ConfigParser object.z'"{0}" is not a valid style or file pathr   NzHtomli package is needed for using pyproject.toml as a configuration fileÚrbZtoolrh   z)Unable to find section [tool.yapf] in {0}r   z$Unable to find section [yapf] in {0}z%Unable to find section [style] in {0})ÚosÚpathÚexistsr   rž   r   r‹   ÚPYPROJECT_TOMLZtomliÚImportErrorr   Ú	YapfErrorÚopenÚloadr   r™   rš   r^   r’   Ú	read_fileÚSETUP_CONFIGÚhas_sectionÚLOCAL_STYLE)Zconfig_filenamer—   ZtomllibZ
style_fileÚpyproject_tomlZ
style_dictÚkÚvr	   r	   r
   r•   ç  sT    ÿ
ÿ

ÿ
"

ÿÿÿr•   c              	   C   sä   |   d¡rdnd}|  dd¡r:|  dd¡ ¡ }t| ƒ }n.|  dd¡rb|  dd¡ ¡ }t| ƒ }ntƒ }|  |¡D ]l\}}| ¡ dkrˆqr| ¡ }|tvr¦t	d 
|¡ƒ‚zt| |ƒ||< W qr tyÜ   t	d 
||¡ƒ‚Y qr0 qr|S )zÍCreate a style dict from a configuration file.

  Arguments:
    config: a ConfigParser object.

  Returns:
    A style dict.

  Raises:
    StyleConfigError: if an unknown style option was encountered.
  rh   r   Zbased_on_stylezUnknown style option "{0}"z#'{}' is not a valid setting for {}.)r¬   Ú
has_optionr   r…   r“   r   rš   rq   Ú_STYLE_OPTION_VALUE_CONVERTERr   rž   rr   )r—   ÚsectionZbased_onZ
base_styleÚoptionrœ   r	   r	   r
   r–     s*    ÿr–   rf   ÚXDG_CONFIG_HOMEz	~/.configrh   r   z.style.yapfz	setup.cfgzpyproject.toml)2r   r¢   rŸ   ÚtextwrapÚconfigparserr   Zyapf.yapflibr   r§   r   r   r   r   r   r]   Údedentr   r_   rc   rd   re   r“   rk   r   ru   r   rƒ   r†   rŒ   r   r‰   r’   r²   r˜   r‘   r”   r•   r–   ZDEFAULT_STYLEZDEFAULT_STYLE_FACTORYr   r£   ÚjoinÚgetenvÚ
expanduserZGLOBAL_STYLEr­   r«   r¥   r   r	   r	   r	   r
   Ú<module>   sd  

	


*
€ € š  nBüü	Ä@.0*þÿ