def _should_use_virtualenv() -> bool: import packaging.requirements # virtualenv might be incompatible if it was installed separately # from build. This verifies that virtualenv and all of its # dependencies are installed as specified by build. return virtualenv is not None and not any( packaging.requirements.Requirement(d[1]).name == 'virtualenv' for d in build.check_dependency('build[virtualenv]') if len(d) > 1)
def _should_use_virtualenv(self): # type: () -> Optional[bool] # virtualenv might be incompatible if it was installed separately # from build. This verifies that virtualenv and all of its # dependencies are installed as specified by build. if self._has_virtualenv is None: self.__class__._has_virtualenv = virtualenv is not None and not any( packaging.requirements.Requirement(d[1]).name == 'virtualenv' for d in build.check_dependency('build[virtualenv]') if len(d) > 1 ) return self._has_virtualenv
def test_check_dependency(monkeypatch, requirement_string, expected): monkeypatch.setattr(importlib_metadata, 'Distribution', MockDistribution) assert next(build.check_dependency(requirement_string), None) == expected