Implemented DateOutOfRange error in find closes date
This commit is contained in:
		
							parent
							
								
									c9bfa485f5
								
							
						
					
					
						commit
						336276cf4b
					
				| @ -125,7 +125,7 @@ class TimeSeries(TimeSeriesCore): | ||||
|         return_actual_date: bool = True, | ||||
|         as_on_match: str = "closest", | ||||
|         prior_match: str = "closest", | ||||
|         closest: str = "previous", | ||||
|         closest: Literal["previous", "next", "exact"] = 'previous', | ||||
|         if_not_found: Literal['fail', 'nan'] = 'fail', | ||||
|         compounding: bool = True, | ||||
|         interval_type: Literal['years', 'months', 'days'] = 'years', | ||||
|  | ||||
| @ -2,7 +2,7 @@ import datetime | ||||
| from dataclasses import dataclass | ||||
| from typing import Iterable, List, Literal, Mapping, Sequence, Tuple, Union | ||||
| 
 | ||||
| from .exceptions import DateNotFoundError | ||||
| from .exceptions import DateNotFoundError, DateOutOfRangeError | ||||
| 
 | ||||
| 
 | ||||
| @dataclass | ||||
| @ -88,6 +88,11 @@ def _preprocess_match_options(as_on_match: str, prior_match: str, closest: str) | ||||
| def _find_closest_date(data, date, delta, if_not_found): | ||||
|     """Helper function to find data for the closest available date""" | ||||
| 
 | ||||
|     if delta.days < 0 and date < min(data): | ||||
|         raise DateOutOfRangeError(date, 'min') | ||||
|     if delta.days > 0 and date > max(data): | ||||
|         raise DateOutOfRangeError(date, 'max') | ||||
| 
 | ||||
|     row = data.get(date, None) | ||||
|     if row is not None: | ||||
|         return date, row | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user