From 59b21078e8d6f732b577c6d3334eadc9ac3480ff Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Fri, 8 Feb 2008 21:16:17 +0000 Subject: [PATCH] Added VersionRangeRestriction subclass of Restriction. This is to allow other kinds of Restriction in future. --- zeroinstall/injector/cli.py | 4 ++-- zeroinstall/injector/model.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/zeroinstall/injector/cli.py b/zeroinstall/injector/cli.py index 600ffa7..800a4a4 100755 --- a/zeroinstall/injector/cli.py +++ b/zeroinstall/injector/cli.py @@ -148,8 +148,8 @@ def _normal_mode(options, args): src = options.source) if options.before or options.not_before: - policy.root_restrictions.append(model.Restriction(model.parse_version(options.before), - model.parse_version(options.not_before))) + policy.root_restrictions.append(model.VersionRangeRestriction(model.parse_version(options.before), + model.parse_version(options.not_before))) if options.offline: policy.network_use = model.network_offline diff --git a/zeroinstall/injector/model.py b/zeroinstall/injector/model.py index 10fe3af..ea761c2 100644 --- a/zeroinstall/injector/model.py +++ b/zeroinstall/injector/model.py @@ -110,8 +110,8 @@ def process_depends(item): dependency.bindings.append(process_binding(e)) elif e.name == 'version': dependency.restrictions.append( - Restriction(not_before = parse_version(e.getAttribute('not-before')), - before = parse_version(e.getAttribute('before')))) + VersionRangeRestriction(not_before = parse_version(e.getAttribute('not-before')), + before = parse_version(e.getAttribute('before')))) return dependency @@ -125,6 +125,13 @@ preferred = Stability(40, 'preferred', 'Best of all - must be set manually') class Restriction(object): """A Restriction limits the allowed implementations of an Interface.""" + __slots__ = [] + + def meets_restriction(self, impl): + raise NotImplementedError("Abstract") + +class VersionRangeRestriction(Restriction): + """Only versions within the given range are acceptable""" __slots__ = ['before', 'not_before'] def __init__(self, before, not_before): self.before = before -- 2.11.4.GIT