Source code for image_features_extraction.my_iterator

from abc import ABCMeta, abstractmethod


class my_iterator(object):
    """
    abstract class used to implement a collection class
    """
    __metaclass__ = ABCMeta

    def __init__(self):
        self.current = -1
        self.__count = 0


    def item(self, i):
        """
        item has to be inplemented in the main class
        """
        pass


    def count_update(self, count):
        self.__count = count
        return count


    def count(self):
        """
        returns the number of items
        """
        return self.__count


    def __iter__(self):
        """
        Python method to define and call the iterator
        """
        return self


    # used to define the iterator: next element
    def __next__(self):
        """
        Python method to calls the iterator next element
        """
        self.current += 1
        if self.current >= self.__count:
            self.current = -1
            raise StopIteration
        return self.item(self.current)