Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/simpledeprule/, roverlay/depres/
Date: Mon, 02 Sep 2013 13:20:16
Message-Id: 1378126317.d686482b9be576f741d0eaa6e17f312dbf0e4e6b.dywi@gentoo
1 commit: d686482b9be576f741d0eaa6e17f312dbf0e4e6b
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Mon Sep 2 12:51:57 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Mon Sep 2 12:51:57 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=d686482b
7
8 depres rule pools: accept dep_env, not mask
9
10 This allows to take the whole dep environment into account when deciding whether
11 it can be resolved by a specific rule pool or not.
12
13 ---
14 roverlay/depres/depresolver.py | 10 ++++------
15 roverlay/depres/deprule.py | 15 ++++++++++++++-
16 roverlay/depres/simpledeprule/dynpool.py | 11 ++++-------
17 3 files changed, 22 insertions(+), 14 deletions(-)
18
19 diff --git a/roverlay/depres/depresolver.py b/roverlay/depres/depresolver.py
20 index eeed396..b5ba075 100644
21 --- a/roverlay/depres/depresolver.py
22 +++ b/roverlay/depres/depresolver.py
23 @@ -390,8 +390,7 @@ class DependencyResolver ( object ):
24
25 else:
26 for rulepool in (
27 - p for p in self.dynamic_rule_pools \
28 - if p.accepts ( dep_env.deptype_mask, try_other=False )
29 + p for p in self.dynamic_rule_pools if p.accepts ( dep_env )
30 ):
31 result = rulepool.matches ( dep_env )
32 if result:
33 @@ -403,8 +402,7 @@ class DependencyResolver ( object ):
34
35 # search for a match in the rule pools that accept the dep type
36 for rulepool in (
37 - p for p in self.static_rule_pools \
38 - if p.accepts ( dep_env.deptype_mask, try_other=False )
39 + p for p in self.static_rule_pools if p.accepts ( dep_env )
40 ):
41 result = rulepool.matches ( dep_env )
42 if result:
43 @@ -417,8 +415,8 @@ class DependencyResolver ( object ):
44 # search for a match in the rule pools
45 # that (normally) don't accept the dep type
46 for rulepool in (
47 - p for p in self.static_rule_pools \
48 - if p.accepts ( ~dep_env.deptype_mask, try_other=True )
49 + p for p in self.static_rule_pools
50 + if p.accepts_other ( dep_env )
51 ):
52 result = rulepool.matches ( dep_env )
53 if result:
54
55 diff --git a/roverlay/depres/deprule.py b/roverlay/depres/deprule.py
56 index ed6084d..800d2af 100644
57 --- a/roverlay/depres/deprule.py
58 +++ b/roverlay/depres/deprule.py
59 @@ -92,11 +92,24 @@ class DependencyRulePool ( object ):
60 return None
61 # --- end of sort (...) ---
62
63 - def accepts ( self, deptype_mask, try_other=False ):
64 + def accepts_mask ( self, deptype_mask ):
65 """Returns True if this pool accepts the given deptype_mask."""
66 return bool ( self.deptype_mask & deptype_mask )
67 + # --- end of accepts_mask (...) ---
68 +
69 + def accepts ( self, dep_env ):
70 + """Returns True if this pool accepts the given dep env."""
71 + return bool ( self.deptype_mask & dep_env.deptype_mask )
72 # --- end of accepts (...) ---
73
74 + def accepts_other ( self, dep_env ):
75 + """Returns True if this pool can be used to resolve a dep env whose
76 + deptype mask is rejected by this pool.
77 + (Not necessarily the inverse of accepts().)
78 + """
79 + return not self.accepts ( dep_env )
80 + # --- end of accepts_other (...) ---
81 +
82 def add ( self, rule ):
83 """Adds a DependencyRule to this rule pool.
84
85
86 diff --git a/roverlay/depres/simpledeprule/dynpool.py b/roverlay/depres/simpledeprule/dynpool.py
87 index 8b6cf20..21e5a1b 100644
88 --- a/roverlay/depres/simpledeprule/dynpool.py
89 +++ b/roverlay/depres/simpledeprule/dynpool.py
90 @@ -36,13 +36,10 @@ class DynamicSelfdepRulePool ( SimpleDependencyRulePool ):
91 self._rule_kw_function = rule_kw_function
92 # --- end of __init__ (...) ---
93
94 - def accepts ( self, deptype_mask, try_other=False ):
95 - if try_other:
96 - # never resolve external deps as selfdeps
97 - return False
98 - else:
99 - return self.deptype_mask & deptype_mask
100 - # --- end of accepts (...) ---
101 + def accepts_other ( self, dep_env ):
102 + # never resolve external deps as selfdeps
103 + return False
104 + # --- end of accepts_other (...) ---
105
106 def reload ( self ):
107 self.rules = list (