Skip to content

Instantly share code, notes, and snippets.

@vibhatha
Created November 2, 2022 07:06
Show Gist options
  • Save vibhatha/c3d250e04e33fcb0e7f437ee6337aa7e to your computer and use it in GitHub Desktop.
Save vibhatha/c3d250e04e33fcb0e7f437ee6337aa7e to your computer and use it in GitHub Desktop.
// TODO remove functions
// debug functions
void PrintPyObject(std::string&& msg, PyObject* obj) {
std::cout << std::string('*', 100) << std::endl;
std::cout << "PrintPython Object:: " << msg << std::endl;
if(obj) {
PyObject *object_repr = PyObject_Repr(obj);
const char *s = PyUnicode_AsUTF8(object_repr);
std::cout << s << std::endl;
} else {
std::cout << "null object" << std::endl;
}
std::cout << std::string('*', 80) << std::endl;
}
Status PrintArrayObject(std::string&& msg, const OwnedRefNoGIL& owned_state) {
std::cout << std::string('X', 100) << std::endl;
std::cout << "Print Array Object : " << msg << std::endl;
if (owned_state) {
if(is_array(owned_state.obj())) {
std::cout << "is array" << std::endl;
ARROW_ASSIGN_OR_RAISE(std::shared_ptr<Array> val, unwrap_array(owned_state.obj()));
std::cout << "Value : " << val->ToString() << std::endl;
} else {
std::cout << "Non array state" << std::endl;
}
} else {
std::cout << "no state found" << std::endl;
}
std::cout << std::string('X', 100) << std::endl;
return Status::OK();
}
Status PrintArrayJustObject(std::string&& msg, PyObject* obj) {
std::cout << std::string('k', 100) << std::endl;
std::cout << "Print Just Array Object : " << msg << std::endl;
if (obj) {
if(is_array(obj)) {
std::cout << "is array" << std::endl;
ARROW_ASSIGN_OR_RAISE(std::shared_ptr<Array> val, unwrap_array(obj));
std::cout << "Value : " << val->ToString() << std::endl;
} else {
std::cout << "Non array object" << std::endl;
}
} else {
std::cout << "no object" << std::endl;
}
std::cout << std::string('k', 100) << std::endl;
return Status::OK();
}
Status CheckUdfContext(std::string&& msg, ScalarAggregateUdfContext udf_context) {
std::cout << std::string('*', 100) << std::endl;
std::cout << "Check UDF COntext: " << msg << std::endl;
if(udf_context.state) {
std::cout << "udf_context_.state is ok" << std::endl;
if(is_array(udf_context.state)) {
std::cout << "is array" << std::endl;
ARROW_ASSIGN_OR_RAISE(std::shared_ptr<Array> val, unwrap_array(udf_context.state));
std::cout << val->ToString() << std::endl;
} else {
PrintPyObject("non-arrow-object", udf_context.state);
}
} else {
std::cout << "this->udf_context_.state is null" << std::endl;
}
std::cout << std::string('*', 100) << std::endl;
return Status::OK();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment