§
    öÛg)-  ã                   ó†  — d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ 	 ej                             ej                             e¦  «        ¦  «        Zej                             e¦  «        rej                             de¦  «         [n# e$ r Y nw xY wg d¢Z  G d„ de
¦  «        Z! G d„ de
¦  «        Z" G d„ de"¦  «        Z# G d„ de#¦  «        Z$ G d„ de%¦  «        Z& G d„ de%¦  «        Z' G d„ de%¦  «        Z( G d„ dej)        ¦  «        Z)d#d„Z*d „ Z+ e+d!¦  «        Zd"Z,dS )$a¸  
PostgreSQL statement and object libraries.

The purpose of a library is provide a means to manage a mapping of symbols
to database operations or objects. These operations can be simple statements,
procedures, or something more complex.

Libraries are intended to allow the programmer to isolate and manage SQL outside
of a system's code-flow. It provides a means to construct the basic Python
interfaces to a PostgreSQL-based application.
é    N)Ú
ModuleType)ÚabstractmethodÚabstractpropertyé   )ÚElementÚ
ElementSet)Úapi)Úsys)Ú
exceptions)Úfind)Úchain)ÚLibraryÚSymbolCollectionÚILFÚSymbolÚBindingÚBoundSymbolÚfind_libsqlÚloadc                   óD   — e Zd ZdZdZdZdZh d£Zd„ Z	 	 	 	 	 dd	„Z	d
„ Z
dS )r   zc
	An annotated SQL statement string.

	The annotations describe how the statement should be used.
	)ÚlibraryÚsourceÚnameÚmethodÚtypeÚ
parametersÚSYMBOL)r   r   >   ÚrowsÚfirstÚchunksÚcolumnÚdeclareÚ	load_rowsÚload_chunksc              #   ó    K  — d | j         fV — d S ©N©r   ©Úselfs    úM/granary/edev/quantum/lib/python3.11/site-packages/postgresql/lib/__init__.pyÚ_e_metaszSymbol._e_metasK   s   è è € Ø	ˆtŒyÐÐÐÐÐÐó    NFc                 óÆ   — || _         || _        || _        |dv rd }n(|| j        vrt	          dt          |¦  «        z   ¦  «        ‚|| _        || _        || _        || _	        d S )N)NÚ Úallzunknown execution method: )
r   r   r   Úexecution_methodsÚ
ValueErrorÚreprr   r   r   Ú	reference)r)   r   r   r   r   r   r   r3   s           r*   Ú__init__zSymbol.__init__N   st   € ð €$„,Ø€$„+Ø€$„)ØÐ Ð Ð Ø€6€6Ø�TÔ+Ð+Ð+Ý	Ð0µ4¸±<´<Ñ?Ñ	@Ô	@Ð@Ø€$„+Ø€$„)Ø€$„/Ø€$„.€.€.r,   c                 ó*   — t          | j        ¦  «        S )z/
		Provide the source of the query's symbol.
		)Ústrr   r(   s    r*   Ú__str__zSymbol.__str__b   s   € õ 
ˆTŒ[Ñ	Ô	Ðr,   )NNNNF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Ú_e_labelÚ
_e_factorsr0   r+   r4   r7   © r,   r*   r   r   .   s†   € € € € € ðð ð
€ð €Ø$€ðð ð Ððð ð ð
 
ØØ	ØØðð ð ð ð(ð ð ð ð r,   r   c                   ó°   — e Zd ZdZdZdZedefd„¦   «         Zedefd„¦   «         Z	edehfd„¦   «         Z
edegfd„¦   «         Zedeegffd	„¦   «         Zd
S )r   zN
	A library is mapping of symbol names to `postgresql.lib.Symbol` instances.
	ÚLIBRARYr?   Úreturnc                 ó   — dS )z4
		A string indicating the source of the symbols.
		Nr?   r(   s    r*   ÚaddresszLibrary.addressq   ó   € € € r,   c                 ó   — dS )z?
		The name to bind the library as. Should be an identifier.
		Nr?   r(   s    r*   r   zLibrary.namew   rE   r,   c                 ó   — dS )zF
		A set of symbols that should prepared when the library is bound.
		Nr?   r(   s    r*   ÚpreloadzLibrary.preload}   rE   r,   c                 ó   — dS )z7
		Iterable of symbol names provides by the library.
		Nr?   r(   s    r*   ÚsymbolszLibrary.symbolsƒ   rE   r,   c                 ó   — dS )z,
		Return the symbol with the given name.
		Nr?   ©r)   r   s     r*   Ú
get_symbolzLibrary.get_symbol‰   rE   r,   N)r8   r9   r:   r;   r=   r>   r   r6   rD   r   rH   r   rJ   r   rM   r?   r,   r*   r   r   j   sù   € € € € € ðð ð €Ø€àð�cð ð ð ñ Ôðð
 ð�3ð ð ð ñ Ôðð
 ð�s�fð ð ð ñ Ôðð
 ð�s�eð ð ð ñ „.ðð
 ð ¨¨Ð1ð ð ð ñ „.ðð ð r,   r   c                   ó"   — e Zd ZdZdZdZdd„ZdS )r   z?
	Explicitly composed library. (Symbols passed into __init__)
	N)ÚstaticrH   ÚconstÚprocÚ	transientc           	      óL  — || _         d| _        d| _        i x}| _        t	          ¦   «         | _        |D ]o\  }\  }}}}}	|r|| j        vrt          d|›d|›�¦  «        ‚|dk    r| j                             |¦  «         d}n|dk    r	 t          | |	||||¬¦  «        }
|
||<   ŒpdS )z\
		Given an iterable of (symtype, symexe, doc, sql) tuples, create a
		symbol collection.
		Núsymbol z has an invalid type: rH   rQ   )r   r   r   r3   )
ÚprefaceÚ_addressÚ_nameÚsymbolsdÚsetrH   Úsymtypesr1   Úaddr   )r)   rJ   rU   Úsr   ÚisrefÚtypÚexeÚdocÚqueryÚSYMs              r*   r4   zSymbolCollection.__init__œ   sö   € ð
 €$„,Ø€$„-Ø€$„*ØÐ€!€d„mÝ‘”€$„,Ø-4ð ð Ñ)€dÑ)ˆU�C˜˜c 5Ø	ð ˆc˜œÐ&Ð&Ý
ˆ*Ø+/¨4¨4°°Ð5ñô ð ð 
ˆYÒÐØ„L×Ò�TÑÔÐØ
€C€CØˆvŠˆØÝ	��eØØØØð	
ñ 
ô 
€3ð €1€T�7€7ð!ð r,   r&   )r8   r9   r:   r;   rH   rZ   r4   r?   r,   r*   r   r   �   s@   € € € € € ðð ð €ð€ðð ð ð ð ð r,   r   c                   ó‚   — e Zd ZdZd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
ed„ ¦   «         Zed	„ ¦   «         Zd
S )r   zINI Library Formatc              #   ó$   K  — d | j         pdfV — d S )Nr   ©rV   r(   s    r*   r+   zILF._e_metasº   s$   è è € Ø	ˆtŒ}Ð% Ð&Ð&Ð&Ð&Ð&Ð&r,   c                 óp   — | j         j        dz   | j         j        z   dz   t          | j        ¦  «        z   dz   S )Nú.z.open(ú))Ú	__class__r9   r8   r2   rD   r(   s    r*   Ú__repr__zILF.__repr__½   s9   € Ø	ŒÔ	" SÑ	(¨4¬>Ô+BÑ	BÀXÑ	MÕPTÐUYÔUaÑPbÔPbÑ	bÐehÑ	hÐhr,   c                 ó   — | j         S r&   )rW   r(   s    r*   r   zILF.nameÀ   s
   € à	ŒÐr,   c                 ó   — | j         S r&   re   r(   s    r*   rD   zILF.addressÄ   s
   € à	ŒÐr,   c                 ó6   — | j                              |¦  «        S r&   )rX   ÚgetrL   s     r*   rM   zILF.get_symbolÈ   s   € Ø	Œ×	Ò	˜4Ñ	 Ô	 Ð r,   c                 ó4   — | j                              ¦   «         S r&   )rX   Úkeysr(   s    r*   rJ   zILF.symbolsË   s   € Ø	Œ×	Ò	Ñ	Ô	Ðr,   c           	      ól  ‡— d}d}g }g }|D ]Å}|                      ¦   «         }|                     d¦  «        r1|                     d¦  «        r|                     ||f¦  «         |}g }Œ\|                     d¦  «        r?d|v r;|                     dd¦  «        \  }}	|dd…         }|                     ||	f¦  «         Œ°|                     |¦  «         ŒÆ|                     ||f¦  «         d                     |                     d¦  «        d         ¦  «        }
g Š|D �]\  }}t          |                      ¦   «                               d	¦  «                             d
¦  «        ¦  «        dz   ^}}}}d}d}ˆfd„|D ¦   «         }|D ],}|                     d¦  «        r||dd…         z  }n n|dz  }Œ-d                     ||d…         ¦  «        }|dk    r|                      ¦   «         }|                     d¦  «        r|dd…         }d}nd}‰                     ||||||ff¦  «         �Œ | ‰|
¬¦  «        S )z?
		Create an anonymous ILF library from a sequence of lines.
		r.   Nú[ú]z*[é   r   r   z[]ú:)NNc                 óœ   •‡— g | ]GŠ‰j         t          ur‰n4t          t          ‰¦  «        ˆfd „¦  «        d         d         ‰d         z   ‘ŒHS )c                 ó(   •— | d         ‰d         k    S )Nr   r?   )ÚyÚxs    €r*   ú<lambda>z+ILF.from_lines.<locals>.<listcomp>.<lambda>ô   s   ø€  A a¤D¨A¨a¬D¢L€ r,   rt   éÿÿÿÿ)ri   Útupler   Úreversed)Ú.0ry   Úsymss    @€r*   ú
<listcomp>z"ILF.from_lines.<locals>.<listcomp>ò   sj   øø€ ð ð ð ð 	
ð 
Œ�EÐ	!Ð	!€A€AÝ	�(�4‰.Œ.Ð0Ð0Ð0Ð0Ñ1Ô1°!Ô4°RÔ8¸1¸Q¼4Ñ?ðð ð r,   z-- é   rQ   ú&TF)rU   )ÚstripÚ
startswithÚendswithÚappendÚsplitÚjoinÚpopr|   )r^   ÚlinesÚprevÚcuridÚcurblockÚblocksÚlineÚlÚrefÚrestrU   ÚsymdescÚblockr   Ústypr_   Ú_r`   Úendofcommentry   ra   r]   r   s                         @r*   Ú
from_lineszILF.from_linesÎ   s™  ø€ ð
 
€$Ø
€%Ø€(Ø€&Øð ð €dØ‡z‚z�|„|€1Ø‡l‚l�3ÑÔð ˜AŸJšJ s™OœOð Ø
‡M‚M�5˜(Ð#Ñ$Ô$Ð$Ø€EØ€H€HØ�Š˜ÑÔð  #¨ + +Ø—
’
˜3 Ñ"Ô"�I€Cˆà
ˆaˆbˆbŒ'€Cà‡O‚O�S˜$�KÑ Ô Ð Ð à‡O‚O�DÑÔÐÐØ‡-‚-�˜Ð!Ñ"Ô"Ð"Ø�GŠG�F—J’J˜q‘M”M !Ô$Ñ%Ô%€'Ø	€$Øð 7ñ 7�n€gˆuõ  Ø‡M‚M�O„O×Ò˜$ÑÔ×%Ò% cÑ*Ô*ñô àñÐ€4ˆˆs�Qð 
€3Ø€<ðð ð ð ð ð	ñ ô €5ð ð ð €qØ‡|‚|�EÑÔð ØˆAˆaˆbˆbŒE�\€S€Sà
€UØ�AÑ€L€LØ�7Š7�5˜˜˜Ô'Ñ(Ô(€5Ø
ˆf‚n€nØ�KŠK‰MŒM€EØ
‡o‚o�cÑÔð Ø���Œ8€DØ€E€Eà€EØ‡;‚;��u˜d C¨¨eÐ4Ð5Ñ6Ô6Ð6Ñ6Ø	ˆˆT˜WÐ	%Ñ	%Ô	%Ð%r,   c                 ó†  — t          j        |g|¢R i |¤Ž5 }|                      |¦  «        }t          j                             |¦  «        |_        t          j                             |¦  «        }|                     d¦  «        r&| 	                    d¦  «        r|dd…         pd|_
        ddd¦  «         n# 1 swxY w Y   |S )z2
		Create a named ILF library from a file path.
		Úlibú.sqlr�   éüÿÿÿN)ÚioÚopenr˜   ÚosÚpathÚabspathrV   Úbasenamer„   r…   rW   )r^   ÚfilepathÚargsÚkwÚfpÚrÚbns          r*   rž   zILF.open	  só   € õ
 
„wˆxÐ%˜$Ð%Ð%Ð% "Ð%Ð%ð ¨Ø
‡~‚~�bÑÔ€1Ý”—’ Ñ)Ô)€1„:Ý
Œ×Ò˜Ñ"Ô"€2Ø‡m‚m�EÑÔð ˜rŸ{š{¨6Ñ2Ô2ð Ø��2�ŒhÐ˜$€A„Gðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 
€(s   –BB6Â6B:Â=B:N)r8   r9   r:   r;   r+   rj   Úpropertyr   rD   rM   rJ   Úclassmethodr˜   rž   r?   r,   r*   r   r   ¸   sÆ   € € € € € ØÐð'ð 'ð 'ðið ið ið ðð ñ „(ðð ðð ñ „(ðð!ð !ð !ðð ð ð ð8&ð 8&ñ „+ð8&ðt ð
ð 
ñ „+ð
ð 
ð 
r,   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   z-
	A symbol bound to a database(connection).
	c                 óþ   — |j         dk    r*|                     |¦  «        }|j        | _        || _        d S |                     |¦  «        }|j        }|€|j        | _        nt          ||¦  «        | _        || _        d S )NrQ   )r   rQ   Ú__call__r   ÚobjectÚprepareÚgetattr)r)   ÚsymbolÚdatabaserQ   ÚpsÚms         r*   r4   zBoundSymbol.__init__  sx   € Ø„[�FÒÐØ
�-Š-˜Ñ
Ô
€4Ø”€4„;Ø€4„;€;€;à×Ò˜Ñ Ô €2Ø„}€1Ø€iØ”+€D„K€Kå˜"˜a‘.”.€D„KØ€4„;€;€;r,   c                 ó   —  | j         |i |¤ŽS r&   )r   )r)   r¤   r¥   s      r*   r­   zBoundSymbol.__call__(  s   € Ø	ˆŒ�dÐ	!˜bÐ	!Ð	!Ð!r,   N©r8   r9   r:   r;   r4   r­   r?   r,   r*   r   r     s<   € € € € € ðð ðð ð ð"ð "ð "ð "ð "r,   r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚBoundReferencez¡
	A symbol bound to a database whose results make up the source of a symbol
	that will be created upon the execution of this symbol.

	A reference to a symbol.
	c                 ó`   — || _         || _        |                     |¦  «        j        | _        d S r&   )r±   r²   r¯   r    r   )r)   r±   r²   s      r*   r4   zBoundReference.__init__3  s,   € Ø€$„+Ø€$„-Ø× Ò  Ñ(Ô(Ô/€$„+€+€+r,   c                 ó4  — t          j         | j        |i |¤Ž¦  «        }d                     d„ |D ¦   «         ¦  «        }t	          t          | j        j        || j        j        | j        j        | j        j	        | j        j
        d¬¦  «        | j        ¦  «        S )Nú
c                 ó8   — g | ]}d                       |¦  «        ‘ŒS )ú )rˆ   )r~   Úrows     r*   r€   z+BoundReference.__call__.<locals>.<listcomp>;  s"   € Ð3Ð3Ð3 S�3—8’8˜C‘=”=Ð3Ð3Ð3r,   F)r   r   r   r   r3   )r   Úfrom_iterabler   rˆ   r   r   r±   r   r   r   r   r²   )r)   r¤   r¥   r    Úsrcs        r*   r­   zBoundReference.__call__8  s›   € ÝÔ˜{˜tœ{¨DÐ7°BÐ7Ð7Ñ8Ô8€&à�	Š	Ð3Ð3¨FÐ3Ñ3Ô3Ñ4Ô4€#Ý	Ý	Ø„KÔ˜ØŒ;ÔØŒ[ÔØŒ;ÔØ”Ô'Øðñ ô ð „=ñ

ô 

ð 
r,   Nr¶   r?   r,   r*   r¸   r¸   +  s<   € € € € € ðð ð0ð 0ð 0ð
ð ð ð ð r,   r¸   c                   ó4   ‡ — e Zd ZdZd„ Zd„ Zˆ fd„Zd„ Zˆ xZS )r   z,
	Library bound to a database(connection).
	c                 óv   — | j                              ||i dœ¦  «         |j        D ]}t          | |¦  «         Œd S )N)Ú__database__Ú__symbol_library__Ú__symbol_cache__)Ú__dict__ÚupdaterH   r°   )r)   r²   r   ry   s       r*   r4   zBinding.__init__L  s_   € Ø„-×ÒØØ!Øðð ñ ô ð ð
 Œ?ð ð €aå
ˆ4�ÑÔÐÐðð r,   c                 ó2   — d| j         j        ›d| j        ›d�S )Nz<Binding: libz on ú>)rÄ   r   rÃ   r(   s    r*   rj   zBinding.__repr__V  s)   € € àÔÔÐÐØÔÐÐð
ð r,   c                 óˆ   •— t          t          ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z   S r&   )ÚdirÚsuperÚlistrÄ   rJ   )r)   ri   s    €r*   Ú__dir__zBinding.__dir__\  s/   ø€ Ý	�U‰WŒW‰Œ�˜TÔ4×<Ò<Ñ>Ô>Ñ?Ô?Ñ	?Ð?r,   c                 ó¦  — | j         }|d         }|d         }|d         }|                     |¦  «        }|�€|                     |¦  «        }|€t          d|›d|j        ›�¦  «        ‚|j        r6t          ||¦  «        }|j        dk    r
 |¦   «         }|j        dk    r|||<   n«t          |t          ¦  «        s3 ||¦  «        }t          |t          ¦  «        st          d	|›d
�¦  «        ‚|j        dk    r8 t          ||¦  «        ¦   «         }|j        dv rt          |¦  «        }|x}||<   n t          ||¦  «        }|j        dk    r|||<   |S )zt
		Return a BoundSymbol against the Binding's database with the
		symbol named ``name`` in the Binding's library.
		rÅ   rÃ   rÄ   NrT   z does not exist in library rP   rR   zcallable symbol, z!, did not produce Symbol instance)r    r   r!   )rÆ   rn   rM   ÚAttributeErrorrD   r3   r¸   r   Ú
isinstancer   Ú	TypeErrorr   r   rÍ   )	r)   r   Údr\   Údbrš   ÚbsÚsymr§   s	            r*   Ú__getattr__zBinding.__getattr___  s‘  € ð
 „m€!ØÐÔ€!ØˆÔ€"Ø	Ð
Ô€#à‡u‚uˆT�{„{€"Ø�Zð
 
�Š˜Ñ	Ô	€3Ø	€kÝ
ˆ.à
€d€dˆCŒKˆKðñô ð ð
 
„mð å	˜˜RÑ	 Ô	 €BØ
„x�7ÒÐà
ˆ"‰$Œ$€RØ
„x�;ÒÐØ€Q€t�Wøå�c�6Ñ"Ô"ð àˆ3ˆr‰7Œ7€SÝ�s�FÑ#Ô#ð ÝˆIà˜4˜4ð"ñô ð ð „x�7ÒÐØ	��S˜"Ñ	Ô	Ñ	Ô	€QØŒ
Ð2Ð2Ð2å
ˆq‰'Œ'€aØÐ€Rˆ!ˆD‰'ˆ'å
�c˜2Ñ
Ô
€RØŒ�KÒÐØ€aˆ�gØ	€)r,   )	r8   r9   r:   r;   r4   rj   rÎ   r×   Ú__classcell__)ri   s   @r*   r   r   H  st   ø€ € € € € ðð ðð ð ðð ð ð@ð @ð @ð @ð @ð2ð 2ð 2ð 2ð 2ð 2ð 2r,   r   c                   ó(   — e Zd ZdZdZd„ Zd„ Zd„ ZdS )ÚCategoryz
	Library-based Category.
	)Ú	librariesc              #   óX   K  — dd„ | j                              ¦   «         D ¦   «         fV — d S )NÚaliasesc                 ó$   — i | ]\  }}|j         |“ŒS r?   r'   )r~   ÚkÚvs      r*   ú
<dictcomp>z%Category._e_metas.<locals>.<dictcomp>™  s    € Ð@Ð@Ð@¡4 1 a�Q”V˜QÐ@Ð@Ð@r,   )rÝ   Úitemsr(   s    r*   r+   zCategory._e_metas˜  s:   è è € Ø	Ð@Ð@¨4¬<×+=Ò+=Ñ+?Ô+?Ð@Ñ@Ô@ÐAÐAÐAÐAÐAÐAr,   c                 óD  — t          |¦  «        }t          |                     ¦   «         ¦  «        }|| _        t          ||z  ¦  «        | _        i | _        |                     ¦   «         D ]5\  }}| j                             |g ¦  «        }|                     |¦  «         Œ6d S r&   )	rY   ÚvaluesÚ_directr   rÛ   rÝ   râ   Ú
setdefaultr†   )r)   ÚlibsÚ
named_libsÚslÚnlrß   rà   rÓ   s           r*   r4   zCategory.__init__›  s˜   € Ý
ˆ4�y„y€"Ý
ˆ:×ÒÑÔÑÔ€"Ø€$„,Ý˜b 2™gÑ&Ô&€$„.Ø€$„,à×ÒÑ Ô ð ð �d€aˆØ„|×Ò˜q "Ñ%Ô%€1Ø‡8‚8ˆA�;„;€;€;ðð r,   c                 óJ  — | j         D ]š}t          | j                             |d¦  «        ¦  «        }|| j        v r|                     |j        ¦  «         t          ||¦  «        }|D ]:}t          ||¦  «        rt          dt          z   ¦  «        ‚t          |||¦  «         Œ;Œ›d S )Nr?   zattribute already exists: )rÛ   rÍ   rÝ   rn   rå   r†   r   r   ÚhasattrrÐ   Úsetattr)r)   r²   r�   ÚnamesÚBÚns         r*   r­   zCategory.__call__¦  s»   € ØŒ>ð ð €aÝ�”× Ò   BÑ'Ô'Ñ(Ô(€5Øˆ4Œ<ÐÐØ	‡L‚L�”ÑÔÐÝˆx˜ÑÔ€1Øð ð €qÝˆx˜ÑÔð ?ÝÐ6½Ñ=Ñ>Ô>Ð>ÝˆH�a˜ÑÔÐÐððð r,   N)r8   r9   r:   r;   r>   r+   r4   r­   r?   r,   r*   rÚ   rÚ   “  sU   € € € € € ðð ð €ðBð Bð Bð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r,   rÚ   rš   r›   c              #   óª   K  — || z   |z   }|D ]E}t           j                             ||¦  «        }t           j                             |¦  «        r|V — ŒFdS )zš
	Given the base library name, `libname`, look for a file named
	"<prefix><libname><suffix>" in each directory(`paths`).
	All finds will be yielded out.
	N)rŸ   r    rˆ   Úexists)ÚlibnameÚpathsÚprefixÚsuffixrš   Úps         r*   r   r   ±  se   è è € ð �Ñ˜&Ñ €Ø
ð ð €QÝ„g‡l‚l�1�cÑÔ€!Ý„W‡^‚^�AÑÔð Ø	
€7€7€7øðð r,   c                 óª  — t          | t          ¦  «        rCt          | d¦  «        rt          | d¦  «        }�nt	          | ¦  «        }t          | d|¦  «         nút          | t          ¦  «        rÁ	 t          j        j	        | v rt                               | ¦  «        }nPt          | t          j        ¦  «        D ]} nt          j        d| ›d�¦  «        ‚t                               |¦  «        }ne# t          j        $ r ‚ t"          $ r% t          j        dt%          | ¦  «        z   ¦  «        ‚w xY wt'          dt)          | ¦  «        j        z   ¦  «        ‚|S )zÄ
	Given a reference to a symbol library, instantiate the Library instance.

	Currently this function accepts:

	 * `str` objects as absolute paths or relative to sys.libpath.
	 * Module objects.
	Ú__libzlibrary z not in postgresql.sys.libpathzfailed load ILF, z"load takes a module or str, given )rÑ   r   rì   r°   ÚModuleLibraryrí   r6   rŸ   r    Úsepr   rž   r   Úpg_sysÚlibpathÚpg_excÚ	LoadErrorÚ	Exceptionr2   rÒ   r   r8   )Úlibrefrš   ry   s      r*   r   r   ½  sY  € õ ˆv•zÑ"Ô"ð PÝˆV�WÑÔð !Ý	�˜Ñ	!Ô	!€3�3å	�vÑ	Ô	€3Ý
ˆ6�7˜CÑ Ô Ð Ð Ý��ÑÔð Pð>Ý„g„k�VÐÐå
�(Š(�6Ñ
Ô
€C€Cõ ˜¥¤Ñ0Ô0ð Tð TˆØ
€UåÔÐÈ&È&È&ÐRÑSÔSÐSÝ
�(Š(�1‰+Œ+€CøøÝ	Ô	ð 	ð 	ð 	ØÝ	ð >ð >ð >å	Ô	Ð-µ°V±´Ñ<Ñ	=Ô	=Ð=ð>øøøõ 	Ð6½¸f¹¼Ô9NÑNÑOÔOÐOØ€s   Á/A>C. Ã.>D,r
   ÚreStructuredText)rš   r›   )-r;   r�   Úos.pathrŸ   Útypesr   Úabcr   r   Úpython.elementr   r   r.   r	   Úpg_apir
   rü   r   rþ   Úpython.itertoolsr   Ú	itertoolsr   r    r¡   ÚdirnameÚ__file__Úlibdirrò   rý   ÚinsertÚ	NameErrorÚ__all__r   r   r   r   r®   r   r¸   r   rÚ   r   r   Ú__docformat__r?   r,   r*   ú<module>r     sñ  ðð
ð 
ð 
€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ðØ
Œ'�/Š/˜"œ'Ÿ/š/¨(Ñ3Ô3Ñ
4Ô
4€ð „G‡N‚N�6ÑÔð #Ø„.×Ò˜˜6Ñ"Ô"Ð"Ø€Vøð ð ð ð Ø€ðøøøð	ð 	ð 	€ð:ð :ð :ð :ð :ˆWñ :ô :ð :ðx#ð #ð #ð #ð #ˆgñ #ô #ð #ðJ'ð 'ð 'ð 'ð '�wñ 'ô 'ð 'ðR\ð \ð \ð \ð \Ð
ñ \ô \ð \ð|"ð "ð "ð "ð "�&ñ "ô "ð "ð*ð ð ð ð �Vñ ô ð ð:Ið Ið Ið Ið Iˆfñ Iô Ið IðVð ð ð ð ˆvŒñ ô ð ð<
ð 
ð 
ð 
ð"ð "ð "ðH €dˆ5�k„k€à"€€€s   Á 2B) Â)B1Â0B1