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 – обработанная пачка данных.