def extract(self):
if not self.package_request.conflict:<EOL><INDENT>new_slice, package_request = self.variant_slice.extract()<EOL>if package_request:<EOL><INDENT>assert(new_slice is not self.variant_slice)<EOL>scope = copy.copy(self)<EOL>scope.variant_slice = new_slice<EOL>if self.pr:<EOL><INDENT>self.pr("<STR_LIT>", package_request, self)<EOL><DEDENT>return (scope, package_request)<EOL><DEDENT><DEDENT>return (self, None)<EOL>
Extract a common dependency.

        Returns:
            A (_PackageScope, Requirement) tuple, containing the new scope copy
            with the extraction, and the extracted package range. If no package
            was extracted, then (self,None) is returned.