diff --git a/CHANGES.md b/CHANGES.md index a63a41e7819..f27e2c5cf45 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -20,6 +20,13 @@ ones in. --> [#5314](https://github.com/cylc/cylc-flow/pull/5314) - Fix broken command option: `cylc vip --run-name`. +[#5319](https://github.com/cylc/cylc-flow/pull/5319), +[#5321](https://github.com/cylc/cylc-flow/pull/5321), +[#5325](https://github.com/cylc/cylc-flow/pull/5325) - +Various efficiency optimisations to the scheduler which particularly impact +workflows with many-to-many dependencies (e.g. ` => `). + +------------------------------------------------------------------------------- ## __cylc-8.1.0 (Released 2023-01-16)__ ### Breaking Changes diff --git a/cylc/flow/id.py b/cylc/flow/id.py index 9cc9cf6dc3f..9c3a56e3082 100644 --- a/cylc/flow/id.py +++ b/cylc/flow/id.py @@ -107,7 +107,10 @@ def __init__( if args: if len(args) > 1: raise ValueError() - kwargs = tokenise(str(args[0]), relative) + if isinstance(args[0], str): + kwargs = tokenise(args[0], relative) + else: + kwargs = dict(args[0]) else: for key in kwargs: if key not in self._KEYS: diff --git a/tests/integration/test_reinstall.py b/tests/integration/test_reinstall.py index 02be406bc53..8b13c55749f 100644 --- a/tests/integration/test_reinstall.py +++ b/tests/integration/test_reinstall.py @@ -80,7 +80,7 @@ def one_run(one_src, test_dir, run_dir): ) return SimpleNamespace( path=w_run_dir, - id=w_run_dir.relative_to(run_dir), + id=str(w_run_dir.relative_to(run_dir)), )