Provider

Warning

Документация к модулю находится в разработке.

Provider – это класс, который преобразовывает порции данных с помощью своих трансформеров self.transformers. Есть его частные полезные реализации: Merger и Serial.

__init__

def __init__(self, numofthreads=4)

Создаёт объект Provider.

Параметры

Параметр Возможные типы Описание По умолчанию
numofthreads int Количество потоков, которые участвуют в подготовке данных 4

Возвращаемое значение

Нет.

__enter__

def __enter__(self)

Обеспечивает возможность использования Provider в конструкции with.

Параметры

Нет.

Возвращаемое значение

Данный объект Provider.

__exit__

def __exit__(self, exc_type, exc_value, traceback)

Вызывается при выходе из выражения with. Выполняет метод closePool.

Параметры

Параметр Возможные типы Описание По умолчанию
exc_type Системный параметр, см. в Интернете описание конструкции with
exc_value Системный параметр, см. в Интернете описание конструкции with
traceback Системный параметр, см. в Интернете описание конструкции with

Возвращаемое значение

Нет.

closePool

def closePool(self)

Закрывает пул потоков.

Параметры

Нет.

Возвращаемое значение

Нет.

addTransformer

def addTransformer(self, transformer)

Метод добавления трансформера в массив трансформеров данного объекта.

Параметры

Параметр Возможные типы Описание По умолчанию
transformer Transformer Трансформер, который будет применяться для преобразования данных

Возвращаемое значение

Нет.

getNextChunk

def getNextChunk(self, chunksize, **kwargs)

Выдаёт пачку данных размера chunksuze. В параметре kwargs указываются параметры построения пачки данных. По умолчанию метод пустой, необходимо переопределить под свои нужды.

Параметры

Параметр Возможные типы Описание По умолчанию
chunksize int Длина выдаваемых пачек данных
**kwargs dict Словарь, в котором могут указываться параметры построения пачек данных -

Возвращаемое значение

В Provider по умолчанию нет. Но при задании конкретной реализации метода – как в Merger.

prepareData

def prepareData(self, chunksize=20000, **kwargs)

Берёт следующую пачку данных с помощью getNextChunk и подготовливает трансформированные данные в многопоточном режиме.

Параметры

Параметр Возможные типы Описание По умолчанию
chunksize int Длина выдаваемых пачек данных 20000
**kwargs dict Словарь, в котором могут указываться параметры построения пачек данных -

Возвращаемое значение

Нет.

getData

def getData(self)

Метод для получения обработанных данных. Вызывается после prepareData. Если данные ещё не готовы, ждёт, когда обработка закончится.

Параметры

Нет.

Возвращаемое значение

Подготовленные данные из self.data.

worker

def worker(transformers, batch, threadidx)

В отдельных потоках воркеры применяют каждый трансформер к своей пачке данных.

Параметры

Параметр Возможные типы Описание По умолчанию
transformers list Массив трансформеров self.transformers
batch np.ndarray, list Часть данных из self.data, которая передана данному воркеру для обработки
threadidx int Номер потока мультипроцессинга

Возвращаемое значение

Возвращает тупл (batch, threadidx), где batch – обработанная пачка данных.