'Limited-size ordered dict.
Kwargs:
size_limit (int): Use this to limit the number of elements
alloweds to be in this list. By default the overshooting elements
will be removed in FIFO order.
fifo (bool, optional): Defaults to `True`. Remove overshooting elements
in FIFO order. If `False`, remove in FILO order.'

def __init__(self, *args, **kwargs):

    super(LimitedSizeOrderedDict, self).__init__()
    self.size_limit = kwargs.get('size_limit', None)
    self.filo = (not kwargs.get('fifo', True))
    self._check_size()
