def get_pbspro_parser()

in pbspro/src/pbspro/parser.py [0:0]


def get_pbspro_parser() -> PBSProParser:
    global _PARSER
    if _PARSER is None:
        # avoid circular import
        from pbspro.pbscmd import PBSCMD
        from pbspro.resource import read_resource_definitions

        # chicken / egg issue: we want the  resource definitions
        # as a member of the parser, but we need the parser to parse
        # the definitions...
        # So create temp parser with no resource definitions
        _PARSER = PBSProParser({})
        pbscmd = PBSCMD(_PARSER)
        logging.warning(
            "Using uninitialized PBSProParser: please call"
            + " set_pbspro_parser before calling get_pbspro_parser"
        )
        resource_definitions = read_resource_definitions(pbscmd, {})
        _PARSER = PBSProParser(resource_definitions)
    return _PARSER