Minsky: 3.17.0
pyminsky Namespace Reference

Functions

 CLASSDESC_ADD_GLOBAL (minsky)
 
minsky::ItemfindObject (const std::string &typeName)
 
minsky::ItemfindVariable (const std::string &name)
 
 CLASSDESC_ADD_FUNCTION (findObject)
 
 CLASSDESC_ADD_FUNCTION (findVariable)
 

Variables

minsky::Minsky minsky
 

Function Documentation

◆ CLASSDESC_ADD_FUNCTION() [1/2]

pyminsky::CLASSDESC_ADD_FUNCTION ( findObject  )

◆ CLASSDESC_ADD_FUNCTION() [2/2]

pyminsky::CLASSDESC_ADD_FUNCTION ( findVariable  )

◆ CLASSDESC_ADD_GLOBAL()

pyminsky::CLASSDESC_ADD_GLOBAL ( minsky  )

◆ findObject()

minsky::Item& pyminsky::findObject ( const std::string &  typeName)

Definition at line 31 of file pyminsky.cc.

32  {
33  using namespace minsky;
34  auto& canvas = minsky.canvas;
35 
36  canvas.item.reset(); // Reset the item to ensure no leftover references
37 
38  bool found = false;
39 
40  if (typeName == "Group" && !canvas.model->groups.empty())
41  {
42  canvas.item = canvas.model->groups.front();
43  found = true;
44  }
45  else
46  {
47  found = minsky.model->recursiveDo(&GroupItems::items, [&](const Items&, Items::const_iterator i)
48  {
49  if ((*i)->classType() == typeName)
50  {
51  canvas.item = *i;
52  return true; // Stop recursion
53  }
54  return false;
55  });
56  }
57 
58  // Check if an object was found
59  if (!found || !canvas.item)
60  {
61  // std::cerr << "findObject: Object of type '" << typeName << "' not found or invalid!" << std::endl;
62  throw std::runtime_error("Object not found");
63  }
64 
65  return *canvas.item; // Return the dereferenced item
66  }
std::vector< ItemPtr > Items
Definition: item.h:360

◆ findVariable()

minsky::Item& pyminsky::findVariable ( const std::string &  name)

Definition at line 69 of file pyminsky.cc.

70  {
71  using namespace minsky;
72  auto& canvas = minsky.canvas;
73 
74  canvas.item.reset(); // Reset item to ensure clean start
75 
76  const bool found = minsky.model->recursiveDo(
78  [&](const Items&, Items::const_iterator i) {
79  if (auto v = dynamic_cast<VariableBase*>(i->get()))
80  {
81  if (v->name() == name)
82  {
83  canvas.item = *i;
84  return true; // Stop recursion
85  }
86  }
87  return false;
88  });
89 
90  if (!found || !canvas.item)
91  {
92  // std::cerr << "findVariable: Variable '" << name << "' not found or invalid!" << std::endl;
93  throw std::runtime_error("Variable not found");
94  }
95 
96  return *canvas.item; // Return the dereferenced item
97  }
std::vector< ItemPtr > Items
Definition: item.h:360

Variable Documentation

◆ minsky

minsky::Minsky pyminsky::minsky

Definition at line 28 of file pyminsky.cc.

Referenced by minsky::GroupItems::addItem(), minsky::PubTab::addNote(), minsky::Item::adjustBookmark(), minsky::Group::arguments(), minsky::Group::autoLayout(), minsky::Canvas::copyItem(), minsky::Canvas::deleteItem(), minsky::Group::deleteItem(), minsky::GodleyIcon::deleteRow(), minsky::Canvas::deleteWire(), minsky::Minsky::displayErrorItem(), minsky::VariableBase::ensureValueExists(), minsky::RungeKutta::evalEquations(), minsky::VariableBase::exportAsCSV(), minsky::Group::formula(), minsky::Group::gotoBookmark_b(), minsky::VariableBase::importFromCSV(), minsky::GodleyTableEditor::importStockVarByCol(), minsky::VariableBase::init(), minsky::Canvas::keyPress(), minsky::layoutGroup(), minsky::GodleyTableEditor::matchingTableColumnsByCol(), minsky::Canvas::mouseMove(), minsky::PubTab::mouseUp(), minsky::GodleyTableEditor::mouseUp(), minsky::Canvas::mouseUp(), minsky::VariableBase::onKeyPress(), minsky::VariableBase::onMouseMotion(), minsky::Canvas::openGroupInCanvas(), minsky::Group::operator()(), minsky::Group::randomLayout(), minsky::PubTab::removeItemAt(), minsky::PubTab::removeSelf(), minsky::Group::renameAllInstances(), minsky::Canvas::reportDrawTime(), minsky::RenderNativeWindow::requestRedraw(), minsky::VariableBase::retype(), minsky::RKdata::RKdata(), minsky::Canvas::select(), minsky::GodleyIcon::setCell(), minsky::VariableBase::setUnits(), minsky::UserFunction::units(), minsky::VariableBase::units(), minsky::GodleyIcon::update(), minsky::GodleyTableEditor::update(), minsky::VariableBase::value(), minsky::VariableBase::vValue(), minsky::Canvas::zoomToDisplay(), and minsky::RenderNativeWindow::~RenderNativeWindow().