| 3055 | } |
| 3056 | |
| 3057 | static PyObject* replyToPyList(RedisModuleCallReply *reply){ |
| 3058 | if(!reply){ |
| 3059 | Py_INCREF(Py_None); |
| 3060 | return Py_None; |
| 3061 | } |
| 3062 | if(RedisModule_CallReplyType(reply) == REDISMODULE_REPLY_ARRAY){ |
| 3063 | PyObject* ret = PyList_New(0); |
| 3064 | for(size_t i = 0 ; i < RedisModule_CallReplyLength(reply) ; ++i){ |
| 3065 | RedisModuleCallReply *subReply = RedisModule_CallReplyArrayElement(reply, i); |
| 3066 | PyObject* val = replyToPyList(subReply); |
| 3067 | PyList_Append(ret, val); |
| 3068 | GearsPyDecRef(val); |
| 3069 | } |
| 3070 | return ret; |
| 3071 | } |
| 3072 | |
| 3073 | if(RedisModule_CallReplyType(reply) == REDISMODULE_REPLY_STRING || |
| 3074 | RedisModule_CallReplyType(reply) == REDISMODULE_REPLY_ERROR){ |
| 3075 | size_t len; |
| 3076 | const char* replyStr = RedisModule_CallReplyStringPtr(reply, &len); |
| 3077 | PyObject* ret = PyUnicode_FromStringAndSize(replyStr, len); |
| 3078 | if(!ret){ |
| 3079 | PyErr_Clear(); |
| 3080 | ret = PyByteArray_FromStringAndSize(replyStr, len); |
| 3081 | } |
| 3082 | return ret; |
| 3083 | } |
| 3084 | |
| 3085 | if(RedisModule_CallReplyType(reply) == REDISMODULE_REPLY_INTEGER){ |
| 3086 | long long val = RedisModule_CallReplyInteger(reply); |
| 3087 | return PyLong_FromLongLong(val); |
| 3088 | } |
| 3089 | Py_INCREF(Py_None); |
| 3090 | return Py_None; |
| 3091 | } |
| 3092 | |
| 3093 | static PyObject* getMyHashTag(PyObject *cls, PyObject *args){ |
| 3094 | const char* myHashTag = RedisGears_GetMyHashTag(); |
no test coverage detected