def createSourceNameIndex(self, statisticObject, readSourceUtils, saveSourceUtils, parseSourceNameCallback):
        """
        Создание индекса по именам файлов

        :param statisticObject:  объект для создания статистики
        :param readSourceUtils:  объект для чтения данных статистики
        :param saveSourceUtils:  объект для сохранения индекса по статистике
        :param parseSourceNameCallback:  колбэк для обработки имен файлов
        """
        if not statisticObject:
            raise ParamError("statisticObject cannot be the None-object")
        if not isinstance(statisticObject, Statistic):
            raise TypeError("statisticObject can be the list Statistic")

        if not readSourceUtils:
            raise ParamError("readSourceUtils cannot be the None-object")
        if not isinstance(readSourceUtils, MongoReadUtils):
            raise TypeError("readSourceUtils can be the list MongoReadUtils")

        if not saveSourceUtils:
            raise ParamError("saveSourceUtils cannot be the None-object")
        if not isinstance(saveSourceUtils, MongoSaveUtils):
            raise TypeError("saveSourceUtils can be the list MongoSaveUtils")
        if not ISaveRetrievalUtils.providedBy(saveSourceUtils):
            raise TypeError("saveSourceUtils is not provided by ISaveRetrievalUtils")

        if not parseSourceNameCallback:
            raise ParamError("parseSourceNameCallback cannot be the None-object")
        if not isinstance(parseSourceNameCallback, FileNameNormalization):
            raise TypeError("parseSourceNameCallback can be the list FileNameNormalization")

        for file_data in readSourceUtils.getSubDicts(statisticObject.getMainStatisticID()):
            # получение кортежа '/opt/test dir/file.txt' -> ('/opt/test dir', 'file.txt')
            name_node = os.path.split(file_data['dict_name'])
            try:
                paths = parseSourceNameCallback.normalizeTextWithoutRepetition(name_node[0].encode("utf-8"))
                names = parseSourceNameCallback.normalizeTextWithoutRepetition(name_node[1].encode("utf-8"))
                names.extend(paths)
                saveSourceUtils.saveFilename(file_data['_id'], list(set(names)), name_node[1])
            except IndexError or ParamError:  # если вдруг - пустое значение
                pass
Example #2
0
    def __init__(self, mongoSaveUtils, mongoReadUtils):
        """
        Инициализация

        :param mongoSaveUtils:  параметры для записи данных в mongodb
        :param mongoReadUtils:  параметры для чтения данных из mongodb
        """
        if not mongoSaveUtils:
            raise ParamError("mongoUtils cannot be the None-object")
        if not isinstance(mongoSaveUtils, MongoSaveUtils):
            raise TypeError("mongoUtils can be the list MongoSaveUtils")
        if not ISaveRetrievalUtils.providedBy(mongoSaveUtils):
            raise TypeError("mongoUtils is not provided by ISaveRetrievalUtils")

        if not mongoReadUtils:
            raise ParamError("mongoReadUtils cannot be the None-object")
        if not isinstance(mongoReadUtils, MongoReadUtils):
            raise TypeError("mongoReadUtils can be the list MongoReadUtils")

        self.__mongoSaveUtils = mongoSaveUtils
        self.__mongoReadUtils = mongoReadUtils
        self.__ms = StatisticFactory().createStatistic(MONGO_TYPE, self.__mongoSaveUtils)
Example #3
0
    def __init__(self, mongoSaveUtils, mongoReadUtils):
        """
        Инициализация

        :param mongoSaveUtils:  параметры для записи данных в mongodb
        :param mongoReadUtils:  параметры для чтения данных из mongodb
        """
        if not mongoSaveUtils:
            raise ParamError("mongoUtils cannot be the None-object")
        if not isinstance(mongoSaveUtils, MongoSaveUtils):
            raise TypeError("mongoUtils can be the list MongoSaveUtils")
        if not ISaveRetrievalUtils.providedBy(mongoSaveUtils):
            raise TypeError(
                "mongoUtils is not provided by ISaveRetrievalUtils")

        if not mongoReadUtils:
            raise ParamError("mongoReadUtils cannot be the None-object")
        if not isinstance(mongoReadUtils, MongoReadUtils):
            raise TypeError("mongoReadUtils can be the list MongoReadUtils")

        self.__mongoSaveUtils = mongoSaveUtils
        self.__mongoReadUtils = mongoReadUtils
        self.__ms = StatisticFactory().createStatistic(MONGO_TYPE,
                                                       self.__mongoSaveUtils)