def __init__(self, name, version=None, url=None, declaration_only=False): from pybuilder import pip_common if version: try: version = ">=" + str(pip_common.Version(version)) self.version_not_a_spec = True except pip_common.InvalidVersion: try: version = str(pip_common.SpecifierSet(version)) except pip_common.InvalidSpecifier: raise ValueError( "'%s' must be either PEP 0440 version or a version specifier set" % version) else: try: req = pip_common.Requirement(name) name = req.name version = version or str(req.specifier) or None url = url or req.url except pip_common.InvalidRequirement: pass self.name = name self.version = version self.url = url self.declaration_only = declaration_only
def version_satisfies_spec(spec, version): if not spec: return True if not version: return False if not isinstance(spec, pip_common.SpecifierSet): spec = pip_common.SpecifierSet(spec) if not isinstance(version, pip_common.Version): version = pip_common.Version(version) return spec.contains(version)
def setUp(self): self.logger = Mock(Logger) self.dependencies_to_install_with_pip = [ Dependency('test'), Dependency('pip') ] self.dependencies_to_install_without_pip = [ Dependency('test'), Dependency('test2') ] from pybuilder import pip_common, pip_utils self.pip_common_object = pip_common.Version("1.2.3") self.pip_utils_method = pip_utils.pip_install
def __init__(self, name, version=None, url=None): self.name = name if version: try: version = ">=" + str(pip_common.Version(version)) self.version_not_a_spec = True except pip_common.InvalidVersion: try: version = str(pip_common.SpecifierSet(version)) except pip_common.InvalidSpecifier: raise ValueError("'%s' must be either PEP 0440 version or a version specifier set" % version) self.version = version self.url = url
def test_version_no_match(self): plugin_module = Mock() pluginloader.PYB_VERSION = pip_common.Version("1.2.3") plugin_module.pyb_version = ">=1.2.5" self.assertRaises(IncompatiblePluginException, _check_plugin_version, plugin_module, "test plugin")
def test_version_multiple_specifier_match(self): plugin_module = Mock() pluginloader.PYB_VERSION = pip_common.Version("1.2.3") plugin_module.pyb_version = ">=1.2.0,<=1.2.4" _check_plugin_version(plugin_module, "test plugin")
def test_version_compatible_match(self): plugin_module = Mock() pluginloader.PYB_VERSION = pip_common.Version("1.2.3") plugin_module.pyb_version = "~=1.2" _check_plugin_version(plugin_module, "test plugin")
from pybuilder import __version__ as pyb_version # Plugin install_dependencies_plugin can reload pip_common and pip_utils. Do not use from ... import ... from pybuilder import pip_utils, pip_common from pybuilder.errors import ( MissingPluginException, IncompatiblePluginException, UnspecifiedPluginNameException, ) from pybuilder.utils import read_file PYPI_PLUGIN_PROTOCOL = "pypi:" VCS_PLUGIN_PROTOCOL = "vcs:" if pyb_version == "${dist_version}": # This is the case of PyB bootstrap PYB_VERSION = pip_common.Version('0.0.1.dev0') else: PYB_VERSION = pip_common.Version(pyb_version) class PluginLoader(object): def __init__(self, logger): self.logger = logger def can_load(self, project, name, version=None, plugin_module_name=None): pass def load_plugin(self, project, name, version=None,