Skip to content

Instantly share code, notes, and snippets.

@cournape
Created September 18, 2013 19:54
Show Gist options
  • Save cournape/6614669 to your computer and use it in GitHub Desktop.
Save cournape/6614669 to your computer and use it in GitHub Desktop.
Rules generator
from depsolver.compat import OrderedDict
from depsolver import PackageInfo, Repository, Pool, Request, Requirement, Solver
from depsolver.solver.rules_generator import RulesGenerator
P = PackageInfo.from_string
R = Requirement.from_string
a_1_0_0 = P("A-1.0.0; depends (B, C)")
b_1_0_0 = P("B-1.0.0; depends (D <= 1.1.0)")
c_1_0_0 = P("C-1.0.0; depends (D <= 0.9.0)")
d_1_1_0 = P("D-1.1.0")
d_0_9_0 = P("D-0.9.0")
repo = Repository([a_1_0_0, b_1_0_0, c_1_0_0, d_1_1_0, d_0_9_0])
installed_repo = Repository()
pool = Pool([repo, installed_repo])
# despolver resolves each dependency 'globally', and does not install
# D-1.1.0 as pip currently does
request = Request(pool)
request.install(R("A"))
rules_generator = RulesGenerator(pool, request, OrderedDict())
for rule in rules_generator.iter_rules():
print rule
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment