docs: def add_selection(self, selection, conflict = 'warning'):
  		"""
  		Restrict the range given a selection string
  
  		:param selection: A single selection (without comma), like '>=1.3'.
  		:param conflict: What to do in case of failure: 'silent', 'warning' or 'error'.
  		"""
  		selection = selection.replace(' ', '').replace('=.', '=0.')
  		if not selection:
  			return
  		if selection.count(',') or selection.count('_'):
  			raise VersionFormatError(('Version string "{0:s}" is incorrect. Perhaps you\'re trying to add a combined one; ' +
  				'you should use add_selections for that').format(selection))
  		if selection.count('.') > 1:
  			raise VersionFormatError(('Version string "{0:s}" is incorrect. Perhaps it contains a version longer than 2 numbers ' +
  				'(e.g. "3.14)" which is intentionally not supported. Version numbers beyond the second are for bugfixes only.').format(selection))
  		regex = r'^([><=]=?)(\d+|\*)(?:\.(\d*|\*))?$'
  		found = findall(regex, selection)
  		if not found:
  			raise VersionFormatError('Version string "{0:s}" not properly formatted according to "{1:s}".'.format(selection, regex))
  		operation, majorstr, minorstr = found[0]
  		if majorstr == '*':
  			return
  		major = int(majorstr)
  		if minorstr == '*':
  			self.update_values(conflict=conflict,
  				min = self.to_nr(major, 0),
  				max = self.to_nr(major + 1, 0) - 1,
  			)
  			return
  		exclusive = int(not operation.endswith('='))
  		major_only = int(not minorstr)
  		nr = self.to_nr(major, int(minorstr or 0))
  		if operation.startswith('='):
  			self.update_values(conflict=conflict,
  				min = nr,
  				max = nr + major_only * self.limit - major_only,
  			)
  		elif operation.startswith('<'):
  			self.update_values(conflict=conflict,
  				max = nr - exclusive + (not exclusive) * (major_only * self.limit - major_only),
  			)
  		elif operation.startswith('>'):
  			self.update_values(conflict=conflict,
  				min = nr + exclusive + exclusive * (major_only * self.limit - major_only),
  			)
  		else:
  			raise VersionFormatError('Version (in)equality operator "{0:s}" not recognized. ' +
  				'Full operation "{1:s}"'.format(operation, selection))