MCPcopy Create free account
hub / github.com/MrNeRF/LichtFeld-Studio / parse_operator_result

Function parse_operator_result

src/python/lfs/py_ui.cpp:641–694  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

639 }
640
641 vis::op::OperatorResult parse_operator_result(nb::object result, nb::object instance = nb::none()) {
642 if (nb::isinstance<nb::set>(result)) {
643 nb::set result_set = nb::cast<nb::set>(result);
644 for (auto item : result_set) {
645 std::string s = nb::cast<std::string>(item);
646 if (s == "FINISHED")
647 return vis::op::OperatorResult::FINISHED;
648 if (s == "RUNNING_MODAL")
649 return vis::op::OperatorResult::RUNNING_MODAL;
650 if (s == "CANCELLED")
651 return vis::op::OperatorResult::CANCELLED;
652 if (s == "PASS_THROUGH")
653 return vis::op::OperatorResult::PASS_THROUGH;
654 }
655 } else if (nb::isinstance<nb::str>(result)) {
656 std::string s = nb::cast<std::string>(result);
657 if (s == "FINISHED")
658 return vis::op::OperatorResult::FINISHED;
659 if (s == "RUNNING_MODAL")
660 return vis::op::OperatorResult::RUNNING_MODAL;
661 if (s == "CANCELLED")
662 return vis::op::OperatorResult::CANCELLED;
663 if (s == "PASS_THROUGH")
664 return vis::op::OperatorResult::PASS_THROUGH;
665 } else if (nb::isinstance<nb::dict>(result)) {
666 nb::dict result_dict = nb::cast<nb::dict>(result);
667 vis::op::OperatorResult status = vis::op::OperatorResult::CANCELLED;
668 nb::dict data;
669
670 for (auto [key, value] : result_dict) {
671 std::string key_str = nb::cast<std::string>(key);
672 if (key_str == "status") {
673 std::string status_str = nb::cast<std::string>(value);
674 if (status_str == "FINISHED")
675 status = vis::op::OperatorResult::FINISHED;
676 else if (status_str == "RUNNING_MODAL")
677 status = vis::op::OperatorResult::RUNNING_MODAL;
678 else if (status_str == "CANCELLED")
679 status = vis::op::OperatorResult::CANCELLED;
680 else if (status_str == "PASS_THROUGH")
681 status = vis::op::OperatorResult::PASS_THROUGH;
682 } else {
683 data[key] = value;
684 }
685 }
686
687 if (instance.is_valid() && !instance.is_none()) {
688 nb::setattr(instance, "_return_data", data);
689 }
690
691 return status;
692 }
693 return vis::op::OperatorResult::CANCELLED;
694 }
695
696 std::vector<vis::op::PropertySchema> extract_property_schemas(nb::object cls) {
697 std::vector<vis::op::PropertySchema> schemas;

Callers 1

Calls 1

is_validMethod · 0.45

Tested by

no test coverage detected