Source code for cioprocessor.processors.validate

"""`validate` processor."""

from os.path import basename

from ..lib.i18n import _
from ..lib.processor import Processor


# =============================================================================
[docs]class ProcessorValidate(Processor): """Class to manage the processor `validate`.""" # -------------------------------------------------------------------------
[docs] def run(self, pbuild): """Execute the processor build. :type pbuild: .lib.pbuild.PBuild :param pbuild: Current processor build object. """ if not pbuild.files: return # Loop over input file step = pbuild.steps[0] for num, input_file in enumerate(pbuild.files): for pbuild.current in pbuild.currents(input_file): pbuild.progress_file(increase=pbuild.current['step_delta']) pbuild.progress_step(0, 1) error = self._step.check(pbuild, step) pbuild.progress_step(increase=1) if error is not None: pbuild.error(error) else: pbuild.info(_('${f} is valid', { 'f': basename(pbuild.current['fup'])})) if not pbuild.current_reset(): break pbuild.progress_file(current=num + 1) pbuild.progress_save() if pbuild.aborted(): break