diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py index 00ce11cbeedc11042e152deeae98a9dbc6e9849d..545d0217581a4f8fb082af038d1f41da0743a66e 100644 --- a/binarycpython/utils/grid.py +++ b/binarycpython/utils/grid.py @@ -2677,19 +2677,22 @@ class Population: # perhaps create symlink to latest gridcode: note, we use os.replace() # in case the symlink already exists if self.grid_options['symlink latest gridcode']: - ftmp = os.path.join(self.grid_options['tmp_dir'], - 'binary_c_grid-latest-tmp-symlink') - fsym = os.path.join(self.grid_options['tmp_dir'], - 'binary_c_grid-latest') - os.symlink(gridcode_filename,ftmp) - os.replace(ftmp,'binary_c_grid-latest-tmp') - verbose_print( - "{}Symlinked grid code to {} {}".format(self.ANSI_colours['blue'], - ftmp, - self.ANSI_colours['reset']), - self.grid_options["verbosity"], - 1, - ) + symlink = os.path.join(self.grid_options['tmp_dir'], + 'binary_c_grid-latest') + os.unlink(symlink) + + try: + os.symlink(gridcode_filename,symlink) + verbose_print( + "{}Symlinked grid code to {} {}".format(self.ANSI_colours['blue'], + symlink, + self.ANSI_colours['reset']), + self.grid_options["verbosity"], + 1, + ) + except OSError: + print("symlink failed") + def _write_gridcode_system_call(self, grid_variable, dry_run, branchpoint, branchcode): #################################################################################