ó R;]c@s§dZddlZddlZddlZddlmZmZddl m Z ddl m Z m Z mZmZmZmZed„Zd „Zed d eƒdS( s/Register backend ops in mxnet.ndarray namespaceiÿÿÿÿNi(t NDArrayBaset_imperative_invokei(t _build_doc(tmx_uintt check_callt_LIBtpy_strt_init_op_modulet_Nullc CsÙtjƒ}tjƒ}tƒ}tjtjƒƒ}tjtjƒƒ}tjtjƒƒ} tjƒ} tjƒ} ttj|tj|ƒtj|ƒtj|ƒtj|ƒtj|ƒtj| ƒtj| ƒtj| ƒƒ ƒt|j ƒ} gt | ƒD]} t || ƒ^q}gt | ƒD]} t || ƒ^q0}t | j ƒ} | j dk ryt | j ƒnd} t |t |j ƒ||gt | ƒD]} t | | ƒ^q¤| | ƒ}d}d}g}g}g}g}xèt | ƒD]Ú} || || }}|dkr;|}|jd|ƒqú|jdƒsY|jdƒr¶| sltdƒ‚|jdƒr•|jd|ƒ|}qÔ|jd |ƒ|j|ƒqú|jd|ƒ|j|ƒqúW|jd ƒ|jd ƒ|jd ƒ||}g}|r„|jd ||fƒ|s8|jdj|ƒƒ|dk rq|jd|||fƒn|jdƒq8n´|jd|dj|ƒfƒ|s8|jdƒx'|D]}|jdjd|ƒƒq¾Wx(|D] }|jd|||fƒqèW|dk r8|jd|||fƒq8n|sU|jd|j ƒn |jdƒtjdjgdjd|ƒjtƒD]"}|jƒr¦d|n|^qŠƒ}|jd|ƒdj|ƒ|fS(s=Generate function for ndarray op by handle and function name.ttdtypes%s=_NulltNDArraytSymbolsROp can only have one argument with variable size and it must be the last argument.s[]s*%ss%s=Nonesout=Nones name=Nones**kwargss def %s(*%s, **kwargs):sÅ ndargs = [] for i in {}: assert isinstance(i, NDArrayBase), \ "Positional arguments must have NDArray type, " \ "but got %s"%str(i) ndargs.append(i)sJ if '%s' in kwargs: kwargs['%s'] = np.dtype(kwargs['%s']).namesƒ _ = kwargs.pop('name', None) out = kwargs.pop('out', None) keys = list(kwargs.keys()) vals = list(kwargs.values())s def %s(%s):s, sP ndargs = [] keys = list(kwargs.keys()) vals = list(kwargs.values())s¸ if {name} is not None: assert isinstance({name}, NDArrayBase), \ "Argument {name} must have NDArray type, but got %s"%str({name}) ndargs.append({name})tnamesJ if %s is not _Null: keys.append('%s') vals.append(%s)sY if %s is not _Null: keys.append('%s') vals.append(np.dtype(%s).name)s; return _imperative_invoke(%d, ndargs, keys, vals, out)s return (0,)sr"""{doc_str}"""tdoc_strs iN(tctypestc_char_pRtPOINTERRRtMXSymbolGetAtomicSymbolInfotbyreftinttvaluetrangeRtNoneRtappendt startswithtAssertionErrortendswithtformattjoint_ostlinesept splitlinestTruetstriptinsert(thandleR t func_nametsignature_onlyt real_nametdesctnum_argst arg_namest arg_typest arg_descstkey_var_num_argstret_typetnargtiRt dtype_nametarr_namet ndsignaturet signaturet ndarg_namest kwarg_namestatypetcodetst doc_str_lines((sV/usr/local/lib/python2.7/site-packages/mxnet-1.2.1-py2.7.egg/mxnet/ndarray/register.pyt_generate_ndarray_function_codes¶           ))$ &              3cBsQe|||ƒ\}}i}|d|U||}||_||_d|_|S(s2Create a NDArray function from the FunctionHandle.s mxnet.ndarrayN(R;Rt__name__t__doc__t __module__(R$R R%R8Rtlocaltndarray_function((sV/usr/local/lib/python2.7/site-packages/mxnet-1.2.1-py2.7.egg/mxnet/ndarray/register.pyt_make_ndarray_functionœs     tmxnettndarray(R=tosRRtnumpytnpt _internalRRt ndarray_docRtbaseRRRRRRtFalseR;RA(((sV/usr/local/lib/python2.7/site-packages/mxnet-1.2.1-py2.7.egg/mxnet/ndarray/register.pyts   .