Source code for abed.run_utils
# -*- coding: utf-8 -*-
import os
from .conf import settings
from .io import info
from .utils import mkdir
[docs]def get_scratchdir(local=False):
if local:
return os.getcwd()
if settings.REMOTE_SCRATCH:
scratchdir = settings.REMOTE_SCRATCH
else:
scratchdir = os.getenv(settings.REMOTE_SCRATCH_ENV, ".")
return scratchdir
[docs]def get_output_dir(result_dir, quiet=False):
subdirs = os.listdir(result_dir)
if not subdirs:
outdir = "%s/0" % (result_dir)
mkdir(outdir)
if not quiet:
info("Created result output dir %s" % outdir)
return outdir
latest = sorted(map(int, subdirs))[-1]
files = os.listdir(result_dir + "/" + str(latest))
if len(files) >= settings.MAX_FILES:
outdir = "%s/%i" % (result_dir, latest + 1)
mkdir(outdir)
if not quiet:
info("Created result output dir %s" % outdir)
else:
outdir = "%s/%i" % (result_dir, latest)
return outdir
[docs]def write_output(output, hsh, local=False):
scratchdir = get_scratchdir()
if local:
scratch_results = settings.STAGE_DIR
else:
scratch_results = "%s/results" % scratchdir
mkdir(scratch_results)
outdir = get_output_dir(scratch_results)
fname = "%s/%s%s" % (outdir, hsh, settings.RESULT_EXTENSION)
with open(fname, "w") as fid:
fid.write(output)
return fname