def test_parser_glob(self):
        parser = RawRequirementParser()

        r_constraints = {"numpy": [GEQ("1.0.0"), LT("2.0.0")]}
        self.assertEqual(parser.parse("numpy == 1.*"), r_constraints)

        r_constraints = {"numpy": [GEQ("1.3.0"), LT("1.4.0")]}
        parser = RawRequirementParser()

        self.assertEqual(parser.parse("numpy == 1.3.*"), r_constraints)

        self.assertRaises(NotImplementedError, lambda : parser.parse("numpy == 1.*-build"))
        self.assertRaises(NotImplementedError, lambda : parser.parse("numpy == 1.0.0-b*"))
Beispiel #2
0
    def test_parser_glob(self):
        parser = RawRequirementParser()

        r_constraints = {"numpy": [GEQ("1.0.0"), LT("2.0.0")]}
        self.assertEqual(parser.parse("numpy == 1.*"), r_constraints)

        r_constraints = {"numpy": [GEQ("1.3.0"), LT("1.4.0")]}
        parser = RawRequirementParser()

        self.assertEqual(parser.parse("numpy == 1.3.*"), r_constraints)

        self.assertRaises(NotImplementedError,
                          lambda: parser.parse("numpy == 1.*-build"))
        self.assertRaises(NotImplementedError,
                          lambda: parser.parse("numpy == 1.0.0-b*"))
class RequirementParser(object):
    def __init__(self):
        self._parser = RawRequirementParser()

    def iter_parse(self, requirement_string):
        for distribution_name, specs in self._parser.parse(
                requirement_string).items():
            yield Requirement(distribution_name, specs)

    def parse(self, requirement_string):
        return [r for r in self.iter_parse(requirement_string)]
Beispiel #4
0
def requirement_string_to_php_constraints(req):
    ret = []

    parser = RawRequirementParser()
    reqs = parser.parse(req).items()
    if not len(reqs) == 1:
        raise ValueError()

    for name, constraints in reqs:
        for constraint in constraints:
            if isinstance(constraint, GEQ):
                ret.append((">=", constraint.version))
            elif isinstance(constraint, LT):
                ret.append(("<", constraint.version))
            elif isinstance(constraint, Any):
                pass
            else:
                raise ValueError("Unsupported constraint: %s" % constraint)

    return ret
Beispiel #5
0
def requirement_string_to_php_constraints(req):
    ret = []

    parser = RawRequirementParser()
    reqs = parser.parse(req).items()
    if not len(reqs) == 1:
        raise ValueError()

    for name, constraints in reqs:
        for constraint in constraints:
            if isinstance(constraint, GEQ):
                ret.append((">=", constraint.version))
            elif isinstance(constraint, LT):
                ret.append(("<", constraint.version))
            elif isinstance(constraint, Any):
                pass
            else:
                raise ValueError("Unsupported constraint: %s" % constraint)

    return ret
 def test_parser_invalids(self):
     parser = RawRequirementParser()
     self.assertRaises(DepSolverError, lambda: parser.parse("numpy >= "))
 def test_lexer_invalids(self):
     parser = RawRequirementParser()
     self.assertRaises(
         DepSolverError,
         lambda: parser.parse("numpy >= 1.2.3 | numpy <= 2.0.0"))
 def test_parser_invalids(self):
     parser = RawRequirementParser()
     self.assertRaises(DepSolverError, lambda : parser.parse("numpy >= "))
 def test_lexer_invalids(self):
     parser = RawRequirementParser()
     self.assertRaises(DepSolverError,
             lambda : parser.parse("numpy >= 1.2.3 | numpy <= 2.0.0"))
    def test_any_simple(self):
        r_constraints = {"numpy": [Any()]}
        parser = RawRequirementParser()

        self.assertEqual(parser.parse("numpy *"), r_constraints)
Beispiel #11
0
    def test_any_simple(self):
        r_constraints = {"numpy": [Any()]}
        parser = RawRequirementParser()

        self.assertEqual(parser.parse("numpy *"), r_constraints)