3 ]{ @sddlmZddlZddlmZmZddlmZddlmZm Z m Z dddgffZ d d Z d d Z dZddZGdddeZGdddeZdS))unicode_literalsN)datedatetime)wraps) string_types quote_plusPY2cCst|ttfrdj|}n>t|ttfr2|j}n&t|trJt|j }nt|t rX|St|t rt rzt|t rz|jdSt rt|tr|jdSt|S)z Escape a single value of a URL string or a query parameter. If it is a list or tuple, turn it into a comma-separated string first. ,zutf-8) isinstancelisttuplejoinrr isoformatboolstrlowerbytesrr unicodeencode)valuerC/tmp/pip-build-z81i1n8o/elasticsearch/elasticsearch/client/utils.py_escape s       rcGsddjdd|DS)z Create a URL string from parts, omit all `None` values and empty strings. Convert lists and tuples to comma separated values. /css$|]}|tkrtt|dVqdS)s,*N) SKIP_IN_PATHrr).0prrr 4sz_make_path..)r)partsrrr _make_path,sr"prettyhuman error_traceformat filter_pathcsfdd}|S)zt Decorator that pops all accepted parameters from method's kwargs and puts them in the params argument. cstfdd}|S)Ncsi}d|kr|jdj}x6tD]*}||kr$|j|}|dk r$t|||<q$Wx"dD]}||krX|j|||<qXW|d|i|S)Nparamsignorerequest_timeout)r)r*)popcopy GLOBAL_PARAMSr)argskwargsr(rv)es_query_paramsfuncrr_wrappedEs  z0query_params.._wrapper.._wrapped)r)r2r3)r1)r2r_wrapperDszquery_params.._wrapperr)r1r4r)r1r query_params>s r5c@s eZdZddZeddZdS)NamespacedClientcCs ||_dS)N)client)selfr7rrr__init__\szNamespacedClient.__init__cCs|jjS)N)r7 transport)r8rrrr:_szNamespacedClient.transportN)__name__ __module__ __qualname__r9propertyr:rrrrr6[sr6c@seZdZeddZdS) AddonClientcCs |tj|}t||j||S)N)weakrefproxysetattr namespace)clsr7Zaddonrrr infect_clienteszAddonClient.infect_clientN)r;r<r= classmethodrErrrrr?dsr?)r#r$r%r&r') __future__rr@rr functoolsrcompatrrr rrr"r-r5objectr6r?rrrrs