code: def render_field(self, field, data):
          
          from trionyx.renderer import renderer
  
          if 'value' in field:
              value = field['value']
          elif isinstance(data, object) and hasattr(data, field['field']):
              value = getattr(data, field['field'])
              if 'renderer' not in field:
                  value = renderer.render_field(data, field['field'], **field)
          elif isinstance(data, dict) and field['field'] in data:
              value = data.get(field['field'])
          elif isinstance(data, list) and field['__index__'] < len(data):
              value = data[field['__index__']]
          else:
              return ''
  
          options = {key: value for key, value in field.items() if key not in ['value', 'data_object']}
          if 'renderer' in field:
              value = field['renderer'](value, data_object=data, **options)
          else:
              value = renderer.render_value(value, data_object=data, **options)
  
          return field['format'].format(value)
docs: Render field for given data