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
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()))
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