§
    öÛgÓ  ã            	       óð  — d Z deddfd„Zdedefd„Zdddefd	„Zg d
¢ZeZd„ Z	d„ Z
edk    �rHddlZddlZddlmZ  e¦   «         Ze                     ddddddd¬¦  «         e                     dddddd¬¦  «         e                     e                     ¦   «                              ¦   «         d z   ¦  «         e                     ¦   «         \  ZZ ee¦  «        d!k    re                     d"¦  «         n eed         ¦  «        Zej        r ee¦  «        Zej                               eej        e         ej        ¦  «        e¦  «        ¦  «         ej                             ej         ¦  «         dS dS )#zZ
PostgreSQL version parsing.

>>> postgresql.version.split('8.0.1')
(8, 0, 1, None, None)
ÚvstrÚreturn)ÚmajorÚminorÚpatch.Ústate_classÚstate_levelc                 ó  — |                       ¦   «                              d¦  «        }|d                               d¦  «        }|r‹|d                              |¦  «        \  }}|sd}nt          |¦  «        }d„ |dd…         D ¦   «         }|r"|                     t          |¦  «        ¦  «         |dgdt	          |¦  «        z
  z  z  }|||gz  }n,d}d}d„ |D ¦   «         }|dgdt	          |¦  «        z
  dz   z  z  }t          |¦  «        S )	zc
	Split a PostgreSQL version string into a tuple
	(major,minor,patch,...,state_class,state_level)
	ú.éÿÿÿÿÚ
0123456789Nc                 ó0   — g | ]}t          |pd ¦  «        ‘ŒS ©Ú0©Úint©Ú.0Úxs     úN/granary/edev/quantum/lib/python3.11/site-packages/postgresql/versionstring.pyú
<listcomp>zsplit.<locals>.<listcomp>   s"   € Ð
)Ð
)Ð
)˜Q�3ˆqˆx�C‰=Œ=Ð
)Ð
)Ð
)ó    é   c                 ó0   — g | ]}t          |pd ¦  «        ‘ŒS r   r   r   s     r   r   zsplit.<locals>.<listcomp>$   s"   € Ð
$Ð
$Ð
$˜Q�3ˆqˆx�C‰=Œ=Ð
$Ð
$Ð
$r   é   )ÚstripÚsplitr   ÚappendÚlenÚtuple)r   Úvr   Úlast_versionr   Úvlists         r   r   r      s&  € ð 
‡Z‚Z�\„\×Ò˜ÑÔ€ð �Œu�{Š{˜<Ñ(Ô(€Øð +Ø œeŸkšk¨+Ñ6Ô6Ñ€,�Ø	ð "Ø€;€;å�[Ñ!Ô!€;Ø
)Ð
) ! C R C¤&Ð
)Ñ
)Ô
)€%Øð #Ø‡<‚<•�LÑ!Ô!Ñ"Ô"Ð"ØˆDˆ6�Q�˜U™œ‘^Ñ$Ñ$€%ØˆK˜Ð%Ñ%€%€%à€+Ø€+Ø
$Ð
$ !Ð
$Ñ
$Ô
$€%àˆDˆ6�a�#˜e™*œ*‘n¨Ñ)Ñ*Ñ*€%Ýˆe‰ŒÐr   Úvtupc                 óœ   — d„ | dd…         D ¦   «         }| dd…         \  }}d                      |¦  «        |€dn|t          |¦  «        z   z   S )z:join a version tuple back into the original version stringc                 ó0   — g | ]}|®t          |¦  «        ‘ŒS )N©Ústrr   s     r   r   zunsplit.<locals>.<listcomp>+   s   € Ð	5Ð	5Ð	5�Q q }�#ˆa‰&Œ& } } }r   Néþÿÿÿr
   Ú )Újoinr'   )r#   Úsvtupr   r   s       r   Úunsplitr,   )   s_   € à	5Ð	5˜$˜s ˜sœ)Ð	5Ñ	5Ô	5€Ø    œIÑ€ˆkØ�Š�‰ŒØÐ€"€" ­s°;Ñ/?Ô/?Ñ!?ñ	ð r   Úsplit_versionza tuple returned by `split`c                 óV   — | �^ }}}d„ |D ¦   «         }t          ||pd|pdgz   ¦  «        S )zw
	Given a tuple produced by `split`, normalize the `None` objects into int(0)
	or 'final' if it's the ``state_class``
	c                 ó   — g | ]}|�|nd‘Œ	S )Né    © r   s     r   r   znormalize.<locals>.<listcomp>7   s    € Ð0Ð0Ð0 aˆQˆ]ˆˆ Ð0Ð0Ð0r   Úfinalr0   )r   )r-   Úheadr   r   Úmmps        r   Ú	normalizer5   1   sL   € ð
 &3Ñ"€4ˆ�kØ0Ð0¨4Ð0Ñ0Ô0€ÝØˆÐ	˜ Ð!1°Ð2Ñ2ñ	ô 	ð r   )ÚdevÚaÚalphaÚbÚbetaÚrcr2   Nc                 ó  — dt          | d         ¦  «        z   dz   dz   t          | d         ¦  «        z   dz   dz   t          | d         ¦  «        z   d	z   d
z   t          | d         ¦  «        z   dz   dz   t          | d         ¦  «        z   dz   dz   S )Nz<version type="one">
 <major>r0   z	</major>
z <minor>é   z	</minor>
z <patch>r   z	</patch>
z <state>r(   z	</state>
z <level>r   z	</level>
z
</version>r&   ©Úselfs    r   Úxmlr@   I   sÊ   € ð	Ý�4˜”7‰|Œ|ñ	Ø*ñ	+àñ	å�4˜”7‰|Œ|ñ	à*ñ	+ð ñ	õ �4˜”7‰|Œ|ñ	ð +ñ	+ð ñ		õ �4˜”8‰}Œ}ñ		ð  ,ñ		,ð
 ñ	õ
 �4˜”8‰}Œ}ñ	ð
  ,ñ	,ð ñ	ð r   c                 óâ   — dt          | d         ¦  «        ›dt          | d         ¦  «        ›dt          | d         ¦  «        ›dt          | d         ¦  «        ›d	t          | d
         ¦  «        ›�
S )NzPG_VERSION_MAJOR=r0   z
PG_VERSION_MINOR=r=   z
PG_VERSION_PATCH=r   z
PG_VERSION_STATE=r(   z
PG_VERSION_LEVEL=r   r&   r>   s    r   ÚshrB   R   sc   € € õ €dˆ1„g�,„,€,€,Ý€dˆ1„g�,„,€,€,Ý€dˆ1„g�,„,€,€,Ý€dˆ2„h�-„-€-€-Ý€dˆ2„h�-„-€-ð
	ð 
r   Ú__main__r0   N)ÚOptionParserz-fz--formatÚchoiceÚformatzformat of output information)rB   r@   ÚpythonrB   )ÚtypeÚdestÚhelpÚchoicesÚdefaultz-nz--normalizeÚ
store_truer5   z$replace missing values with defaultsF)ÚactionrI   rJ   rL   z "version to parse"r=   z*requires exactly one argument, the version)!Ú__doc__r'   r   r   r,   r5   Údefault_state_class_priorityÚreprrG   r@   rB   Ú__name__ÚsysÚosÚoptparserD   ÚopÚ
add_optionÚ	set_usageÚ	get_usager   Ú
parse_argsÚcoÚcar   Úerrorr    ÚstdoutÚwriteÚgetattrÚmodulesrF   Úlinesepr1   r   r   ú<module>rc      s1  ððð ð�ð ð ð ð ð ð ð<�5ð ˜Sð ð ð ð ð	Ð;ð 	Àð 	ð 	ð 	ð 	ð	 ð 	 ð 	 Ð ð 
€ðð ð ðð ð ð ˆzÒÑØ€€€Ø
€€€Ø"Ð"Ð"Ð"Ð"Ð"Ø€l�n„n€Ø‡‚ˆt�ZØØØ%Ø
!Ø
ð ñ ô ð ð ‡‚ˆt�]Ø	ØØ-Ø
ð	 ñ ô ð ð ‡‚ˆb�lŠl‰nŒn×"Ò"Ñ$Ô$Ð'<Ñ<Ñ=Ô=Ð=Ø
�-Š-‰/Œ/�€€RØ€Cˆ�G„Gˆq‚L€LØ‡(‚(Ð7Ñ8Ô8Ð8Ð8à€eˆBˆqŒE�l„l€!Ø„Lð Ø€i��l„l€!Ø„×ÒÐ;�'�'˜#œ+ hÔ/°´Ñ;Ô;¸AÑ>Ô>Ñ?Ô?Ð?Ø„×Ò�"”*ÑÔÐÐÐð7 Ðr   