code: def load(self, file):
  		
  		if isfile(file):
  			try:
  				config = load_source("config", file)
  			except Exception as e:
  				raise ExceptionInConfigError(e)
  			option_missing = False
  			values = {}
  			for option in self.options:
  				# Make sure all options are avaliable (validators aren't run in this case
  				# because there are no values defined)
  				if option.name not in dir(config):
  					values[option.name] = option.default_value
  					option_missing = True
  				else:
  					# Retrieve the option value
  					value = getattr(config, option.name)
  					# Make sure validator passes
  					if option.validator != None:	
  						# If validation doesn't pass
  						if not option.validator(value):
  							# Resort to default value
  							values[option.name] = option.default_value
  							if self.validation_failed != None:
  								self.validation_failed(option.name, value)
  							else:
  								raise ValidationError(option.name)
  							option_missing = True
  						# If validation passes
  						else:
  							values[option.name] = value
  					else:
  						values[option.name] = value
  				if option_missing:
  					self.dump(file)
  			return _EditableConfig(values, self.options, file, 
  				validation_failed=self.validation_failed, debug=self.debug)
  		else:
  			error = "'%s' not found" % file
  			raise FileNotFoundError(error) if version.startswith("3") else IOError(error)
docs: Returns the actual read- and editable config
  		IN: file (type: str, hint: should be a valid path)