File diff ea0e3d3a73b7 → 751cd7cd441e
import2ledger/hooks/filter_by_date.py
Show inline comments
 
import datetime
 

	
 
from . import HOOK_KINDS
 

	
 
from .. import errors, strparse
 

	
 
class FilterByDateHook:
 
    KIND = HOOK_KINDS.DATA_FILTER
 

	
 
    def __init__(self, config):
 
        self.config = config
 
        date_config = config.get_section('Dates')
 
        start_date = self._get_date(date_config, 'import start date', datetime.date.min)
 
        end_date = self._get_date(date_config, 'import end date', datetime.date.max)
 
        if start_date is datetime.date.min and end_date is datetime.date.max:
 
            raise errors.NotConfiguredError("no import start or end date set", None)
 
        self.date_range = range(start_date.toordinal(), end_date.toordinal() + 1)
 

	
 
    def _get_date(self, date_config, key, default):
 
        try:
 
            date_s = date_config[key]
 
        except KeyError:
 
            return default
 
        else:
 
            try:
 
                return strparse.date(date_s, date_config['date format'])
 
            except ValueError as error:
 
                raise errors.UserInputConfigurationError(error.args[0], date_s)
 

	
 
    def run(self, entry_data):
 
        try:
...
 
@@ -12,5 +32,5 @@ class FilterByDateHook:
 
        except KeyError:
 
            pass
 
        else:
 
            if not self.config.date_in_want_range(date):
 
            if date.toordinal() not in self.date_range:
 
                return False