Combine normalize_limit, _offset to normalize_positive_integer.
This commit is contained in:
		
							parent
							
								
									1d76b4511b
								
							
						
					
					
						commit
						afc5f38a8d
					
				
					 1 changed files with 32 additions and 40 deletions
				
			
		|  | @ -283,48 +283,10 @@ def normalize_is_searchhidden(is_searchhidden): | ||||||
|     return helpers.truthystring(is_searchhidden) |     return helpers.truthystring(is_searchhidden) | ||||||
| 
 | 
 | ||||||
| def normalize_limit(limit, warning_bag=None): | def normalize_limit(limit, warning_bag=None): | ||||||
|     if not limit and limit != 0: |     return normalize_positive_integer(limit, warning_bag) | ||||||
|         return None |  | ||||||
| 
 |  | ||||||
|     if isinstance(limit, str): |  | ||||||
|         limit = limit.strip() |  | ||||||
|         if limit.isdigit(): |  | ||||||
|             limit = int(limit) |  | ||||||
| 
 |  | ||||||
|     if isinstance(limit, float): |  | ||||||
|         limit = int(limit) |  | ||||||
| 
 |  | ||||||
|     if not isinstance(limit, int): |  | ||||||
|         message = 'Invalid limit "%s"' % limit |  | ||||||
|         if warning_bag: |  | ||||||
|             warning_bag.add(message) |  | ||||||
|             limit = None |  | ||||||
|         else: |  | ||||||
|             raise ValueError(message) |  | ||||||
| 
 |  | ||||||
|     return limit |  | ||||||
| 
 | 
 | ||||||
| def normalize_offset(offset, warning_bag=None): | def normalize_offset(offset, warning_bag=None): | ||||||
|     if not offset: |     return normalize_positive_integer(limit, warning_bag) | ||||||
|         return None |  | ||||||
| 
 |  | ||||||
|     if isinstance(offset, str): |  | ||||||
|         offset = offset.strip() |  | ||||||
|         if offset.isdigit(): |  | ||||||
|             offset = int(offset) |  | ||||||
| 
 |  | ||||||
|     if isinstance(offset, float): |  | ||||||
|         offset = int(offset) |  | ||||||
| 
 |  | ||||||
|     if not isinstance(offset, int): |  | ||||||
|         message = 'Invalid offset "%s"' % offset |  | ||||||
|         if warning_bag: |  | ||||||
|             warning_bag.add(message) |  | ||||||
|             offset = None |  | ||||||
|         else: |  | ||||||
|             raise ValueError(message) |  | ||||||
| 
 |  | ||||||
|     return offset |  | ||||||
| 
 | 
 | ||||||
| def normalize_orderby(orderby, warning_bag=None): | def normalize_orderby(orderby, warning_bag=None): | ||||||
|     if not orderby: |     if not orderby: | ||||||
|  | @ -386,6 +348,36 @@ def normalize_orderby(orderby, warning_bag=None): | ||||||
| 
 | 
 | ||||||
|     return final_orderby |     return final_orderby | ||||||
| 
 | 
 | ||||||
|  | def normalize_positive_integer(number, warning_bag=None): | ||||||
|  |     if not number: | ||||||
|  |         number = 0 | ||||||
|  | 
 | ||||||
|  |     elif isinstance(number, str): | ||||||
|  |         number = number.strip() | ||||||
|  |         try: | ||||||
|  |             number = int(number) | ||||||
|  |         except ValueError as exc: | ||||||
|  |             if warning_bag: | ||||||
|  |                 warning_bag.add(exc) | ||||||
|  |             else: | ||||||
|  |                 raise | ||||||
|  | 
 | ||||||
|  |     elif isinstance(number, float): | ||||||
|  |         number = int(number) | ||||||
|  | 
 | ||||||
|  |     if not isinstance(number, int): | ||||||
|  |         message = 'Invalid number "%s"' % number | ||||||
|  |         if warning_bag: | ||||||
|  |             warning_bag.add(message) | ||||||
|  |             number = None | ||||||
|  |         else: | ||||||
|  |             raise ValueError(message) | ||||||
|  | 
 | ||||||
|  |     if number < 0: | ||||||
|  |         raise ValueError('Invalid number %d' % number) | ||||||
|  | 
 | ||||||
|  |     return number | ||||||
|  | 
 | ||||||
| def normalize_tag_expression(expression): | def normalize_tag_expression(expression): | ||||||
|     if not expression: |     if not expression: | ||||||
|         return None |         return None | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue