Source code for bspump.file.fileblocksource

import asyncio
import logging

from .fileabcsource import FileABCSource


L = logging.getLogger(__file__)


[docs] class FileBlockSource(FileABCSource): """ Description: """
[docs] def __init__(self, app, pipeline, id=None, config=None): """ Description: **Parameters** app : Application Name of the Application. pipeline : Pipeline Name of the Pipeline. id : ID, default = None ID config : JSON, default = None Configuration file with additional information. """ super().__init__(app, pipeline, id=id, config=config) self.ProactorService = app.get_service("asab.ProactorService")
[docs] async def read(self, filename, f): """ Loads a file. **Parameters** filename : file Name of the file. f : """ await self.Pipeline.ready() # Load the file in a worker thread (to prevent blockage of the main loop) worker = self.ProactorService.execute(f.read) try: await worker except asyncio.CancelledError: return event = worker.result() await self.process(event, {"filename": filename})