1 #ifndef TURI_ANNOTATIONS_ANNOTATION_BASE_HPP 2 #define TURI_ANNOTATIONS_ANNOTATION_BASE_HPP 9 #include <core/export.hpp> 11 #include <core/data/flexible_type/flexible_type.hpp> 13 #include <model_server/lib/extensions/ml_model.hpp> 15 #include <core/storage/sframe_interface/unity_sarray.hpp> 16 #include <core/storage/sframe_interface/unity_sframe.hpp> 18 #include "build/format/cpp/annotate.pb.h" 19 #include "build/format/cpp/data.pb.h" 20 #include "build/format/cpp/message.pb.h" 21 #include "build/format/cpp/meta.pb.h" 22 #include "build/format/cpp/progress.pb.h" 23 #include "build/format/cpp/similarity.pb.h" 25 #include <visualization/annotation/utils.hpp> 26 #include <visualization/server/process_wrapper.hpp> 39 std::shared_ptr<unity_sframe> annotation_sframe;
41 std::shared_ptr<unity_sframe> get_value() {
return annotation_sframe; }
59 const std::vector<std::string> &data_columns,
60 const std::string &annotation_column);
64 void annotate(
const std::string &path_to_client);
68 std::shared_ptr<unity_sframe> returnAnnotations(
bool drop_null =
false);
70 std::shared_ptr<annotation_global> get_annotation_registry();
72 virtual annotate_spec::MetaData metaData() = 0;
74 virtual annotate_spec::Data getItems(
size_t start,
size_t end) = 0;
76 virtual annotate_spec::Annotations getAnnotations(
size_t start,
80 setAnnotations(
const annotate_spec::Annotations &annotations) = 0;
82 virtual annotate_spec::Similarity get_similar_items(
size_t index,
85 virtual void cast_annotations() = 0;
87 virtual void background_work() = 0;
89 virtual void addAnnotationColumn() = 0;
91 virtual void checkDataSet() = 0;
101 AnnotationBase::returnAnnotations,
103 register_defaults(
"returnAnnotations", {{
"drop_null",
false}});
106 AnnotationBase::get_annotation_registry);
114 std::shared_ptr<unity_sframe> m_data;
115 std::shared_ptr<unity_sframe> m_data_na;
116 const std::vector<std::string> m_data_columns;
117 std::string m_annotation_column;
118 std::shared_ptr<visualization::process_wrapper> m_aw;
120 void _addIndexColumn();
121 void _reshapeIndicies(
size_t &start,
size_t &end);
122 void _sendProgress(
double value);
129 template <
typename T,
typename =
typename std::enable_if<std::is_base_of<
130 ::google::protobuf::MessageLite, T>::value>::type>
131 std::string _serialize_proto(T message);
136 void _splitUndefined(
const std::string& column_names,
bool how,
bool recursive);
139 std::string __parse_proto_and_respond(std::string &input);
#define BEGIN_CLASS_MEMBER_REGISTRATION(python_facing_classname)
#define BEGIN_BASE_CLASS_MEMBER_REGISTRATION()
#define IMPORT_BASE_CLASS_REGISTRATION(base_class)
#define END_CLASS_MEMBER_REGISTRATION
#define REGISTER_GETTER(propname, function)
#define REGISTER_NAMED_CLASS_MEMBER_FUNCTION(name, function,...)