From 6a6e7934bde138ddaa2cfa0bc20786a33fa3027a Mon Sep 17 00:00:00 2001 From: Mazz Mosley Date: Fri, 3 Jul 2015 14:05:35 +0100 Subject: [PATCH] Refactor circular-reference check Signed-off-by: Mazz Mosley --- compose/config.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compose/config.py b/compose/config.py index 9adbcfbde1..ba8bd8e035 100644 --- a/compose/config.py +++ b/compose/config.py @@ -147,10 +147,11 @@ class ServiceLoader(object): self.filename = filename self.already_seen = already_seen or [] - def make_service_dict(self, name, service_dict): + def detect_cycle(self, name): if self.signature(name) in self.already_seen: raise CircularReference(self.already_seen + [self.signature(name)]) + def make_service_dict(self, name, service_dict): service_dict = service_dict.copy() service_dict['name'] = name service_dict = resolve_environment(service_dict, working_dir=self.working_dir) @@ -182,6 +183,7 @@ class ServiceLoader(object): other_config = load_yaml(other_config_path) other_service_dict = other_config[extends_options['service']] + other_loader.detect_cycle(extends_options['service']) other_service_dict = other_loader.make_service_dict( service_dict['name'], other_service_dict,