code: def create(
      self,
      card_uuid=None,
      user_set_card_id=None,
      runtime_card=False,
      decorator_attributes=None,
      card_options=None,
      logger=None,
      mode="render",
      final=False,
      sync=False,
  ):
      # Setting `final` will affect the Reload token set during the card refresh
      # data creation along with synchronous execution of subprocess.
      # Setting `sync` will only cause synchronous execution of subprocess.
      if mode != "render" and not runtime_card:
          # silently ignore runtime updates for cards that don't support them
          return
      elif mode == "refresh":
          # don't serialize components, which can be a somewhat expensive operation,
          # if we are just updating data
          component_strings = []
      else:
          component_strings = current.card._serialize_components(
              card_uuid
          )
      data = current.card._get_latest_data(
          card_uuid, final=final, mode=mode
      )
      runspec = "/".join(
          [current.run_id, current.step_name, current.task_id]
      )
      self._run_cards_subprocess(
          card_uuid,
          user_set_card_id,
          mode,
          runspec,
          decorator_attributes,
          card_options,
          component_strings,
          logger,
          data,
          final=final,
          sync=sync,
      )
  
file_path: metaflow/metaflow/plugins/cards/card_creator.py
imports: import time
  import subprocess
  import tempfile
  import json
  import sys
  import os
  from metaflow import current
label_desc: Use image node_id 2 for calling the CardCreator obj's underlying member method code with example usage: obj.create(card_uuid, user_set_card_id, runtime_card, decorator_attributes, card_options, logger, mode, final, sync) without return types