code: def parseArgs(args):
  	
  
  	# If args is not a list
  	if not isinstance(args, (list,tuple)):
  		raise ValueError('args is not a list or tuple')
  
  	# Init the return value
  	dRet	= {}
  
  	# Go through each argument
  	for s in args:
  
  		# Check the string matches the format
  		oRes	= re.match(u'^--([^=]+)(?:=(.+))?$', s)
  
  		# If we have a match
  		if oRes:
  
  			# Store it by name and value
  			mGroup2	= oRes.group(2)
  			dRet[oRes.group(1)]	= (not mGroup2 and True or mGroup2)
  
  		# Else add it to the unknowns
  		else:
  			try:				dRet['?'].append(s)
  			except KeyError:	dRet['?'] = [s]
  
  	# Return the dict
  	return dRet
docs: Parse Arguments
  
  	Used to parse the arguments passed to the script
  
  	Args:
  		args (list): A list of strings representing arguments to a script
  
  	Returns:
  		dict: Returns a dictionary with args as keys and the values sent with
  			them or True for valueless arguments
  
  	Raises:
  		ValueError: If args is not a list or tuple