o
    PDi                     @   s\   d dl mZ dededdfddZ					dded	ed
edededededefddZdS )   )errorsnamevaluereturnNc                 C   s0   d|v sd|v sd|v rt jt j| d dS dS )z
    Checks the argument to ensure that it does not contain (, ) or = as these
    characters are not permitted within connect strings.
    ()=)r   N)r   
_raise_errERR_INVALID_MAKEDSN_ARG)r   r    r   E/var/www/Datamplify/venv/lib/python3.10/site-packages/oracledb/dsn.py
_check_arg$   s   r   hostportsidservice_nameregionsharding_keysuper_sharding_keyc           	      C   s   g }t d|  |durt d| |d| d n|dur,t d| |d| d |dur>t d| |d	| d |durPt d
| |d| d |durbt d| |d| d d|}d|  d| d| dS )z
    Returns a string suitable for use as the ``dsn`` parameter for
    :meth:`~oracledb.connect()`. This string is identical to the strings that
    are defined by the Oracle names server or defined in the ``tnsnames.ora``
    file.
    r   Nr   z(SERVICE_NAME=r   r   z(SID=r   z(REGION=r   z(SHARDING_KEY=r   z(SUPER_SHARDING_KEY= z*(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=z)(PORT=z))(CONNECT_DATA=z)))r   appendjoin)	r   r   r   r   r   r   r   connect_data_partsconnect_datar   r   r   makedsn-   s0   






r   )NNNNN)r   r   strr   intr   r   r   r   r   <module>   s0    