code: def attr_copy(args):
      
      if not args.to_workspace:
          args.to_workspace = args.workspace
      if not args.to_project:
          args.to_project = args.project
      if (args.project == args.to_project
          and args.workspace == args.to_workspace):
          eprint("destination project and namespace must differ from"
                 " source workspace")
          return 1
  
      # First get the workspace attributes of the source workspace
      r = fapi.get_workspace(args.project, args.workspace)
      fapi._check_response_code(r, 200)
  
      # Parse the attributes
      workspace_attrs = r.json()['workspace']['attributes']
  
      # If we passed attributes, only use those
      if args.attributes:
          workspace_attrs = {k:v for k, v in iteritems(workspace_attrs)
                             if k in args.attributes}
  
      if len(workspace_attrs) == 0:
          print("No workspace attributes defined in {0}/{1}".format(
              args.project, args.workspace))
          return 1
  
      message = "This will copy the following workspace attributes to {0}/{1}\n"
      message = message.format(args.to_project, args.to_workspace)
      for k, v in sorted(iteritems(workspace_attrs)):
          message += '\t{0}\t{1}\n'.format(k, v)
  
      if not args.yes and not _confirm_prompt(message):
          return 0
  
      # make the attributes into updates
      updates = [fapi._attr_set(k,v) for k,v in iteritems(workspace_attrs)]
      r = fapi.update_workspace_attributes(args.to_project, args.to_workspace,
                                                                      updates)
      fapi._check_response_code(r, 200)
      return 0
docs: Copy workspace attributes between workspaces.