def get_message_factory()

in transcoder/message/factory/MessageFactory.py [0:0]


def get_message_factory(name: str, schema_file_path: str) -> SBEMessageFactory:
    """Gets a user-specified factory with the parsed schema"""
    schema = SBESchema(enum_fallback_to_name=True, include_constants_in_offset=False)
    schema.parse(schema_file_path)
    factory: SBEMessageFactory = None

    if name == 'itch':
        factory = ITCHMessageFactory(schema)
    elif name == 'cme':
        factory = CmeMessageFactory(schema)
    elif name == 'memx':
        factory = MemxMessageFactory(schema)
    else:
        raise FactoryNotFoundError(f'Factory with name "{name}" is not valid')

    return factory