code: def add_default_uploader(
      user, obj: Union[CreateDataset, CreateAsset]
  ) -> Union[CreateDataset, CreateAsset]:
      uploader = None
      for contributor in obj.contributors:
          if contributor.role == str(Roles.UPLOADER):
              uploader = contributor
              break
  
      if uploader is None:
          uploader = Contributor(
              role=str(Roles.UPLOADER),
              name=user.name,
              email=user.email,
          )
          obj.contributors.add(uploader)
      obj.uploader = uploader
      return obj
  
imports: from __future__ import annotations
  from typing import Optional
  from typing import TYPE_CHECKING
  from typing import Union
  from tqdm import tqdm
  from ..abstract_node import NodeSideType
  from ..img.base64 import base64read
  from ..serde.serializable import serializable
  from ..service.code_history.code_history import CodeHistoriesDict
  from ..service.code_history.code_history import UsersCodeHistoriesDict
  from ..service.dataset.dataset import Contributor
  from ..service.dataset.dataset import CreateAsset
  from ..service.dataset.dataset import CreateDataset
  from ..service.response import SyftError
  from ..service.response import SyftSuccess
  from ..service.user.roles import Roles
  from ..service.user.user_roles import ServiceRole
  from ..types.uid import UID
  from ..util.fonts import fonts_css
  from ..util.util import get_mb_size
  from ..util.util import prompt_warning_message
  from .api import APIModule
  from .client import SyftClient
  from .client import login
  from .client import login_as_guest
label_desc: Use image node_id 1 for calling a global function with example usage: add_default_uploader(user, obj) and returns: obj