Let truthystring take a fallback.
This commit is contained in:
		
							parent
							
								
									3795bde5b1
								
							
						
					
					
						commit
						25de9be94a
					
				
					 2 changed files with 8 additions and 4 deletions
				
			
		|  | @ -227,6 +227,7 @@ You can\'t order "{column}" by "{direction}". Defaulting to descending. | ||||||
| 
 | 
 | ||||||
| FILENAME_BADCHARS = '\\/:*?<>|"' | FILENAME_BADCHARS = '\\/:*?<>|"' | ||||||
| TRUTHYSTRING_TRUE = {s.lower() for s in ('1', 'true', 't', 'yes', 'y', 'on')} | TRUTHYSTRING_TRUE = {s.lower() for s in ('1', 'true', 't', 'yes', 'y', 'on')} | ||||||
|  | TRUTHYSTRING_FALSE = {s.lower() for s in ('0', 'false', 'f', 'no', 'n', 'off')} | ||||||
| TRUTHYSTRING_NONE = {s.lower() for s in ('null', 'none')} | TRUTHYSTRING_NONE = {s.lower() for s in ('null', 'none')} | ||||||
| 
 | 
 | ||||||
| USER_ID_CHARACTERS = string.digits + string.ascii_uppercase | USER_ID_CHARACTERS = string.digits + string.ascii_uppercase | ||||||
|  |  | ||||||
|  | @ -470,12 +470,13 @@ def split_easybake_string(ebstring): | ||||||
|     tagname = tagname.strip('.') |     tagname = tagname.strip('.') | ||||||
|     return (tagname, synonym, rename_to) |     return (tagname, synonym, rename_to) | ||||||
| 
 | 
 | ||||||
| def truthystring(s): | def truthystring(s, fallback=False): | ||||||
|     ''' |     ''' | ||||||
|     If s is already a boolean, int, or None, return a boolean or None. |     If s is already a boolean, int, or None, return a boolean or None. | ||||||
|     If s is a string, return True, False, or None based on the options presented |     If s is a string, return True, False, or None based on the options presented | ||||||
|     in constants.TRUTHYSTRING_TRUE, constants.TRUTHYSTRING_NONE, or False |     in constants.TRUTHYSTRING_TRUE, TRUTHYSTRING_FALSE, TRUTHYSTRING_NONE where | ||||||
|     for all else. Case insensitive. |     s is treated case-insensitively. | ||||||
|  |     If s is not in any of those sets, return the fallback. | ||||||
|     ''' |     ''' | ||||||
|     if s is None: |     if s is None: | ||||||
|         return None |         return None | ||||||
|  | @ -484,11 +485,13 @@ def truthystring(s): | ||||||
|         return bool(s) |         return bool(s) | ||||||
| 
 | 
 | ||||||
|     if not isinstance(s, str): |     if not isinstance(s, str): | ||||||
|         raise TypeError(f'String should be {bool}, {int}, {str}, or None, not {type(s)}.') |         return fallback | ||||||
| 
 | 
 | ||||||
|     s = s.lower() |     s = s.lower() | ||||||
|     if s in constants.TRUTHYSTRING_TRUE: |     if s in constants.TRUTHYSTRING_TRUE: | ||||||
|         return True |         return True | ||||||
|  |     if s in constants.TRUTHYSTRING_FALSE: | ||||||
|  |         return False | ||||||
|     if s in constants.TRUTHYSTRING_NONE: |     if s in constants.TRUTHYSTRING_NONE: | ||||||
|         return None |         return None | ||||||
|     return False |     return False | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue