code: def _do_config_proposal_create(args):
      
      settings = [s.split('=', 1) for s in args.setting]
  
      signer = _read_signer(args.key)
  
      txns = [_create_propose_txn(signer, setting)
              for setting in settings]
  
      batch = _create_batch(signer, txns)
  
      batch_list = BatchList(batches=[batch])
  
      if args.output is not None:
          try:
              with open(args.output, 'wb') as batch_file:
                  batch_file.write(batch_list.SerializeToString())
          except IOError as e:
              raise CliException(
                  'Unable to write to batch file: {}'.format(str(e)))
      elif args.sabre_output is not None:
          for i, txn in enumerate(txns):
              with open("{}-{}".format(args.sabre_output, i), 'wb') as outfile:
                  outfile.write(txn.payload)
      elif args.url is not None:
          rest_client = RestClient(args.url)
          rest_client.send_batches(batch_list)
      else:
          raise AssertionError('No target for create set.')
docs: Executes the 'proposal create' subcommand.  Given a key file, and a
      series of key/value pairs, it generates batches of sawtooth_settings
      transactions in a BatchList instance.  The BatchList is either stored to a
      file or submitted to a validator, depending on the supplied CLI arguments.