Beispiel #1
0
def data(tmpdir_factory, _cookiecutter_config_file, docker_compose):
    p = tmpdir_factory.mktemp("data")
    compose = p.join("docker-compose.yaml")
    compose.write(docker_compose)
    snakefile = p.join("Snakefile")
    SNAKEFILE.copy(snakefile)
    cluster_config = p.join("cluster-config.yaml")
    CLUSTERCONFIG.copy(cluster_config)
    template = os.path.join(os.path.abspath(os.path.dirname(__file__)),
                            os.pardir)
    output_factory = tmpdir_factory.mktemp
    c = Cookies(template, output_factory, _cookiecutter_config_file)
    c._new_output_dir = lambda: str(p.join("slurm"))
    c.bake(
        extra_context={
            'partition': 'normal',
            'output': 'logs/slurm-%j.out',
            'error': 'logs/slurm-%j.err'
        })
    # Advanced setting
    c = Cookies(template, output_factory, _cookiecutter_config_file)
    c._new_output_dir = lambda: str(p.join("slurm-advanced"))
    c.bake(
        extra_context={
            'partition': 'normal',
            'output': 'logs/slurm-%j.out',
            'error': 'logs/slurm-%j.err',
            'submit_script': 'slurm-submit-advanced.py'
        })
    return p
Beispiel #2
0
 def _cookie_factory(sbatch_defaults=_sbatch_defaults,
                     advanced="no",
                     cluster_name=None,
                     cluster_config=None,
                     yamlconfig=_yamlconfig_default):
     cookie_template = pjoin(os.path.abspath(pytest.dname), os.pardir)
     output_factory = tmpdir_factory.mktemp
     c = Cookies(cookie_template, output_factory, _cookiecutter_config_file)
     c._new_output_dir = lambda: str(datadir)
     extra_context = {
         "sbatch_defaults": sbatch_defaults,
         "advanced_argument_conversion": advanced
     }
     if cluster_name is not None:
         extra_context["cluster_name"] = cluster_name
     if cluster_config is not None:
         extra_context["cluster_config"] = cluster_config
     c.bake(extra_context=extra_context)
     config = datadir.join("slurm").join("config.yaml")
     config_d = dict([
         tuple(line.split(":")) for line in config.read().split("\n")
         if line != ""
     ])
     config_d.update(**yamlconfig)
     config.write("\n".join(f"{k}: {v}" for k, v in config_d.items()))
Beispiel #3
0
def data(tmpdir_factory, _cookiecutter_config_file):
    p = tmpdir_factory.mktemp("data")
    snakefile = p.join("Snakefile")
    SNAKEFILE.copy(snakefile)
    cluster_config = p.join("cluster-config.yaml")
    CLUSTERCONFIG.copy(cluster_config)
    template = os.path.join(os.path.abspath(os.path.dirname(__file__)),
                            os.pardir)
    output_factory = tmpdir_factory.mktemp
    defaults = "partition=normal output=logs/slurm-%j.out error=logs/slurm-%j.err"
    c = Cookies(template, output_factory, _cookiecutter_config_file)
    c._new_output_dir = lambda: str(p.join("slurm"))
    c.bake(extra_context={"sbatch_defaults": defaults})
    # Advanced setting
    c = Cookies(template, output_factory, _cookiecutter_config_file)
    c._new_output_dir = lambda: str(p.join("slurm-advanced"))
    c.bake(extra_context={
        "sbatch_defaults": defaults,
        "advanced_argument_conversion": "yes",
    })
    return p