Source code for gs1grader.grader_factory

from gs1grader.grader_interface import DataMatrixGraderInterface


[docs] class DataMatrixGraderFactory: """ Factory class for creating Data Matrix graders. This class implements the factory pattern to create appropriate graders based on the requested grade type. It maintains a registry of available graders and provides methods to register new graders and retrieve instances of registered graders. :param _graders: Dictionary mapping grader names to grader classes. :type _graders: dict :example: >>> # Create a factory >>> factory = DataMatrixGraderFactory() >>> >>> # Register graders >>> factory.register_grader("modulation", ModulationGrader) >>> factory.register_grader("symbol_contrast", SymbolContrastGrader) >>> >>> # Get a grader instance >>> modulation_grader = factory.get_grader("modulation") """ def __init__(self): self._graders = {}
[docs] def register_grader( self, grader_name: str, grader_class: DataMatrixGraderInterface ): assert issubclass( grader_class, DataMatrixGraderInterface ), "Grader must implement DataMatrixGraderInterface" self._graders[grader_name] = grader_class
[docs] def get_grader(self, grader_name: str) -> DataMatrixGraderInterface: grader = self._graders.get(grader_name) if not grader: raise ValueError(f"Grader {grader_name} not found") return grader()