<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def constraint_from_parent_conflicts(self):
 """ Given a resolved entry with multiple parent dependencies with different constraints, searches for the resolution that satisfies all of the parent constraints. :return: A new **InstallRequirement** satisfying all parent constraints :raises: :exc:`~pipenv.exceptions.DependencyConflict` if resolution is impossible """

        # ensure that we satisfy the parent dependencies of this dep
        from pipenv.vendor.packaging.specifiers import Specifier
        parent_dependencies = set()
        has_mismatch = False
        can_use_original = True
        for p in self.parent_deps:
            # updated dependencies should be satisfied since they were resolved already
            if p.is_updated:
                continue
            # parents with no requirements can't conflict
            if not p.requirements:
                continue
            needed = p.requirements.get("dependencies", [])
            entry_ref = p.get_dependency(self.name)
            required = entry_ref.get("required_version", "*")
            required = self.clean_specifier(required)
            parent_requires = self.make_requirement(self.name, required)
            parent_dependencies.add("{0} => {1} ({2})".format(p.name, self.name, required))
            if not parent_requires.requirement.specifier.contains(self.original_version):
                can_use_original = False
            if not parent_requires.requirement.specifier.contains(self.updated_version):
                has_mismatch = True
        if has_mismatch and not can_use_original:
            from pipenv.exceptions import DependencyConflict
            msg = (
                "Cannot resolve {0} ({1}) due to conflicting parent dependencies: "
                "\n\t{2}".format(
                    self.name, self.updated_version, "\n\t".join(parent_dependencies)
                )
            )
            raise DependencyConflict(msg)
        elif can_use_original:
            return self.lockfile_entry.as_ireq()
        return self.entry.as_ireq()