docs: def get_calls_from_dict(self, file_dict, from_name, settings={}):
          '''
          Processes unfolded yaml object to CallEdge array
  
          settings is a dict of settings for keeping information like
          in what section we are right now (e.g. builders, publishers)
          '''
  
          calls = []
          call_settings = dict(settings)
  
          # Include all possible sections
          # The way to draw them is defined in call graph
          special_sections = {'builders', 'publishers', 'wrappers'}
  
          # Trigger flags
          triggers = {'trigger-builds', 'trigger-parameterized-builds'}
  
          if isinstance(file_dict, dict):
              for key in file_dict:
  
                  if key in special_sections:
                      call_settings['section'] = key
  
                  if key in triggers:
                      calls.extend(self.extract_call(file_dict[key], from_name, settings=call_settings))
                  else:
                      calls.extend(self.get_calls_from_dict(file_dict[key], from_name, settings=call_settings))
          elif type(file_dict) == list:
              for value in file_dict:
                  calls.extend(self.get_calls_from_dict(value, from_name, settings=call_settings))
  
          return calls