code: def run(self, args):
          
          project_name_or_id = self.create_project_name_or_id_from_args(args)
          folders = args.folders                  # list of local files/folders to upload into the project
          follow_symlinks = args.follow_symlinks  # should we follow symlinks when traversing folders
          dry_run = args.dry_run                  # do not upload anything, instead print out what you would upload
  
          project_upload = ProjectUpload(self.config, project_name_or_id, folders, follow_symlinks=follow_symlinks)
          if dry_run:
              print(project_upload.dry_run_report())
          else:
              print(project_upload.get_differences_summary())
              if project_upload.needs_to_upload():
                  project_upload.run()
                  print('\n')
                  print(project_upload.get_upload_report())
                  print('\n')
              print(project_upload.get_url_msg())
docs: Upload contents of folders to a project with project_name on remote store.
          If follow_symlinks we will traverse symlinked directories.
          If content is already on remote site it will not be sent.
          :param args: Namespace arguments parsed from the command line.