Is there a reason to specifically test for None here?  Wouldn't 'if not self.scopes:' work?