diff --git a/stdpopsim/slim_engine.py b/stdpopsim/slim_engine.py index 916267683..772f92a85 100644 --- a/stdpopsim/slim_engine.py +++ b/stdpopsim/slim_engine.py @@ -62,6 +62,12 @@ logger = logging.getLogger(__name__) + +def _escape_eidos(s): + # this is for Windows paths passed as strings in Eidos + return "\\\\".join(s.split("\\")) + + _slim_upper = """ initialize() { if (!exists("dry_run")) @@ -1171,7 +1177,7 @@ def fix_time(event): recombination_rates=recomb_rates_str, recombination_ends=recomb_ends_str, generation_time=demographic_model.generation_time, - trees_file=trees_file, + trees_file=_escape_eidos(trees_file), pop_names=f"c({pop_names_str})", ) ) @@ -1489,7 +1495,7 @@ def matrix2str( if logfile is not None: printsc( string.Template(_slim_logfile).substitute( - logfile=logfile, + logfile=_escape_eidos(str(logfile)), loginterval=logfile_interval, ) )