code: def distance(self, host):
          
          if self.predicate(host):
              return self._child_policy.distance(host)
          else:
              return HostDistance.IGNORED
docs: Checks if ``predicate(host)``, then returns
          :attr:`~HostDistance.IGNORED` if falsey, and defers to the child policy
          otherwise.