MCPcopy Create free account
hub / github.com/RedisGears/RedisGears / replyToPyList

Function replyToPyList

plugins/python/redisgears_python.c:3057–3091  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3055}
3056
3057static 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
3093static PyObject* getMyHashTag(PyObject *cls, PyObject *args){
3094 const char* myHashTag = RedisGears_GetMyHashTag();

Callers 1

createReplyFunction · 0.85

Calls 1

GearsPyDecRefFunction · 0.85

Tested by

no test coverage detected