Style nit: This if/pass/elif structure (and the comment placement) feels very weird to me.  I'd restructure it as a single conditional (if origin is not None and not self.check_origin(origin)).