Example #1
0
    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
Example #2
0
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
Example #4
0
    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")
Example #8
0
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,