@staticmethod
    def loadOrCreateJobStore(jobStoreString, config=None):
        """
        Loads an existing jobStore if it already exists. Otherwise a new instance of a jobStore is
        created and returned.

        :param str jobStoreString: see exception message below
        :param toil.common.Config config: see AbstractJobStore.__init__
        :return: an instance of a concrete subclass of AbstractJobStore
        :rtype: jobStores.abstractJobStore.AbstractJobStore
        """
        if jobStoreString[0] in '/.':
            jobStoreString = 'file:' + jobStoreString

        try:
            jobStoreName, jobStoreArgs = jobStoreString.split(':', 1)
        except __HOLE__:
            raise RuntimeError(
                'Job store string must either be a path starting in . or / or a contain at least one '
                'colon separating the name of the job store implementation from an initialization '
                'string specific to that job store. If a path starting in . or / is passed, the file '
                'job store will be used for backwards compatibility.' )

        if jobStoreName == 'file':
            from toil.jobStores.fileJobStore import FileJobStore
            return FileJobStore(jobStoreArgs, config=config)

        elif jobStoreName == 'aws':
            from toil.jobStores.aws.jobStore import AWSJobStore
            return AWSJobStore.loadOrCreateJobStore(jobStoreArgs, config=config)

        elif jobStoreName == 'azure':
            from toil.jobStores.azureJobStore import AzureJobStore
            account, namePrefix = jobStoreArgs.split(':', 1)
            return AzureJobStore(account, namePrefix, config=config)

        else:
            raise RuntimeError("Unknown job store implementation '%s'" % jobStoreName)
dataset/ETHPy150Open BD2KGenomics/toil/src/toil/common.py/Toil.loadOrCreateJobStore