
    hA                         d 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
 	 dd	lmZ d
Z G d de      Zy# e$ r dxZ
ZY  w xY w# e$ r dZY &w xY w)zCouchbase result store backend.    )
_parse_url)ImproperlyConfigured   )KeyValueStoreBackend)PasswordAuthenticator)ClusterN)FMT_AUTO)CouchbaseBackendc                   v     e Zd ZdZdZdZdZdZdZdZ	dZ
dZeZd fd		Zd
 Zed        Zd Zd Zd Zd Z xZS )r
   zCouchbase backend.

    Raises:
        celery.exceptions.ImproperlyConfigured:
            if module :pypi:`couchbase` is not available.
    default	localhosti  NFTg      @c                    |j                  dt               t        |   |i | || _        t
        t        d      d x}x}x}x}}|r(t        |      \  }	}}}}}}	|r|j                  d      nd }| j                  j                  j                  dd       }
|
t        |
t              st        d      i }
|xs |
j                  d| j                        | _        t        |xs |
j                  d| j                              | _        |xs |
j                  d| j                         | _        |xs |
j                  d	| j"                        | _        |xs |
j                  d
| j$                        | _        d | _        y )Nexpires_typezGYou need to install the couchbase library to use the Couchbase backend./couchbase_backend_settingsz6Couchbase backend settings should be grouped in a dicthostportbucketusernamepassword)
setdefaultintsuper__init__urlr   r   r   stripappconfget
isinstancedictr   r   r   r   r   _connection)selfr   argskwargsuhostuportunameupassubucket_config	__class__s              U/var/www/Befach/backend/env/lib/python3.12/site-packages/celery/backends/couchbase.pyr   zCouchbaseBackend.__init__,   sa   .#.$)&)?&% 
 3766668B35AueUE7A,3gmmC(G""#?Ffd+*L  F:VZZ		:	>FDII!>?	BHdkk!BFJ!FFJ!F    c                    | j                   | j                  r)| j                  rd| j                   d| j                   }nd| j                   }| j                  r-| j                  r!t        | j                  | j                        }nd}t        ||      }|j                  | j                        }|j                         | _         | j                   S )z Connect to the Couchbase server.Nzcouchbase://:)	r"   r   r   r   r   r   r   r   default_collection)r#   urioptclusterr   s        r.   _get_connectionz CouchbaseBackend._get_connectionM   s    #yyTYY$TYYKq<$TYYK0}}+DMM4==Ic3'G^^DKK0F%88:Dr/   c                 "    | j                         S N)r6   )r#   s    r.   
connectionzCouchbaseBackend.connection`   s    ##%%r/   c                 L    | j                   j                  |      j                  S r8   )r9   r   contentr#   keys     r.   r   zCouchbaseBackend.getd   s    ""3'///r/   c                     t         .| j                  j                  ||| j                  t                y | j                  j                  ||| j                         y )N)ttlformat)r?   )r	   r9   upsertexpires)r#   r=   values      r.   setzCouchbaseBackend.setg   sD    OO""34<<"QOO""34<<"@r/   c                 8    | j                   j                  |      S r8   )r9   	get_multi)r#   keyss     r.   mgetzCouchbaseBackend.mgetn   s    ((..r/   c                 :    | j                   j                  |       y r8   )r9   remover<   s     r.   deletezCouchbaseBackend.deleteq   s    s#r/   r8   )__name__
__module____qualname____doc__r   r   r   r   r   quietsupports_autoexpiretimeoutstrkey_tr   r6   propertyr9   r   rD   rH   rK   __classcell__)r-   s   @r.   r
   r
      sn     FDDHHEG E B & & &0A/$r/   r
   )rO   kombu.utils.urlr   celery.exceptionsr   baser   couchbase.authr   couchbase.clusterr   ImportErrorcouchbase_core._libcouchbaser	   __all__r
    r/   r.   <module>r`      sk    % & 2 &+4)5  [$+ [$  +&**G#+
  Hs    7 A 	AAAA