def change_model_ws(self, new_pth=None, reset_external=False):
        if new_pth is None:
            new_pth = os.getcwd()
        if not os.path.exists(new_pth):
            try:
                sys.stdout.write(
                    '\ncreating model workspace...\n   {}\n'.format(new_pth))
                os.makedirs(new_pth)
            except:
                # print '\n%s not valid, workspace-folder was changed to %s\n' % (new_pth, os.getcwd())
                print(
                    '\n{0:s} not valid, workspace-folder was changed to {1:s}\n'.format(
                        new_pth, os.getcwd()))
                new_pth = os.getcwd()
        # --reset the model workspace
        self._model_ws = new_pth
        sys.stdout.write(
            '\nchanging model workspace...\n   {}\n'.format(new_pth))
        # reset the paths for each package
        for pp in (self.packagelist):
            pp.fn_path = os.path.join(self.model_ws, pp.file_name[0])

        # create the external path (if needed)
        if hasattr(self, "external_path") and self.external_path is not None \
                and not os.path.exists(os.path.join(self._model_ws,
                                                    self.external_path)):
            pth = os.path.join(self._model_ws, self.external_path)
            os.makedirs(pth)
            if reset_external:
                self._reset_external(pth)
        elif reset_external:
            self._reset_external(self._model_ws)
        return None
``BlockDeviceDeployer._discover_raw_state`` returns a
dataset/ETHPy150Open modflowpy/flopy/flopy/mbase.py/BaseModel.change_model_ws--crossover with--dataset/ETHPy150Open ClusterHQ/flocker/flocker/node/agents/test/test_blockdevice.py/BlockDeviceDeployerDiscoverRawStateTests.test_no_volumes