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/
Date: Mon, 02 Jul 2012 16:52:44
Message-Id: 1341247540.169dbd47cc0795101f25304e709f7f0045d7f364.dywi@gentoo
1 commit: 169dbd47cc0795101f25304e709f7f0045d7f364
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Mon Jul 2 16:45:40 2012 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Mon Jul 2 16:45:40 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=169dbd47
7
8 fix export_rule for simple dep rules
9
10 modified: roverlay/depres/abstractsimpledeprule.py
11 modified: roverlay/depres/simpledeprule.py
12
13 ---
14 roverlay/depres/abstractsimpledeprule.py | 60 +++++++++++++----------------
15 roverlay/depres/simpledeprule.py | 26 ++++++-------
16 2 files changed, 39 insertions(+), 47 deletions(-)
17
18 diff --git a/roverlay/depres/abstractsimpledeprule.py b/roverlay/depres/abstractsimpledeprule.py
19 index b03ce63..811f88e 100644
20 --- a/roverlay/depres/abstractsimpledeprule.py
21 +++ b/roverlay/depres/abstractsimpledeprule.py
22 @@ -1,5 +1,6 @@
23 import logging
24
25 +from roverlay import config
26 from roverlay.depres import deprule
27
28 TMP_LOGGER = logging.getLogger ('simpledeps')
29 @@ -29,8 +30,6 @@ class SimpleRule ( deprule.DependencyRule ):
30 if not dep_str is None:
31 self.dep_alias.append ( dep_str )
32
33 - self.logger.debug ( "new rule (%s) for %s" % ( self.__class__.__name__, self.resolving_package ) )
34 -
35 # --- end of __init__ (...) ---
36
37 def done_reading ( self ):
38 @@ -80,45 +79,40 @@ class SimpleRule ( deprule.DependencyRule ):
39 return None
40 # --- end of matches (...) ---
41
42 - def export_rule ( self, resolving_to=None ):
43 - """Returns this rule as a list of text lines that can be written into
44 - a file.
45 - An empty list will be returned if dep_alias has zero length.
46 -
47 - arguments:
48 - * resolving_to -- portage package that the exported rule should
49 - resolve to, defaults to self.resolving_package or
50 - an ignore keyword such as '!'.
51 + def export_rule ( self ):
52 + """Generates text lines for this rule that can later be read using
53 + the SimpleDependencyRuleReader.
54 """
55 + # todo hardcoded rule format here
56 + if self.resolving_package is None:
57 + resolving = ''
58 + else:
59 + resolving = self.resolving_package
60
61 - alias_count = len ( self.dep_alias )
62 + cat = config.get ( 'OVERLAY.category', None )
63
64 - retlist = []
65 + if cat is not None:
66 + resolving = resolving.replace ( cat + '/', '')
67
68 - if alias_count:
69 - if resolving_to is None:
70 - if hasattr ( self, 'resolving_package'):
71 - resolving_package = self.resolving_package
72 - else:
73 - resolving_package = '!'
74 - else:
75 - resolving_package = resolving_to
76 + if hasattr ( self.__class__, 'RULE_PREFIX' ):
77 + resolving = self.__class__.RULE_PREFIX + resolving
78
79 - # todo hardcoded rule format here
80 - if alias_count > 1:
81 + if len ( self.dep_alias ) == 0:
82 + pass
83
84 - retlist = [ resolving_package + ' {\n' ] + \
85 - [ "\t%s\n" % alias for alias in self.dep_alias ] + \
86 - [ '}\n' ]
87 - else:
88 - retlist = [
89 - "%s :: %s\n" % ( resolving_package, self.dep_alias [0] )
90 - ]
91 + elif len ( self.dep_alias ) == 1:
92 + yield "%s :: %s\n" % ( resolving, iter ( self.dep_alias ).next() )
93 +
94 + else:
95 + yield resolving + ' {'
96 + for alias in self.dep_alias:
97 + yield "\t" + alias
98 + yield '}'
99 +
100 + def __str__ ( self ):
101 + return '\n'.join ( self.export_rule() )
102
103 - # -- if
104
105 - return retlist
106 - # --- end of export_rule (...) ---
107
108 class FuzzySimpleRule ( SimpleRule ):
109
110
111 diff --git a/roverlay/depres/simpledeprule.py b/roverlay/depres/simpledeprule.py
112 index ce4ba10..04a47a6 100644
113 --- a/roverlay/depres/simpledeprule.py
114 +++ b/roverlay/depres/simpledeprule.py
115 @@ -13,6 +13,8 @@ TMP_LOGGER = logging.getLogger ('simpledeps')
116
117 class SimpleIgnoreDependencyRule ( SimpleRule ):
118
119 + RULE_PREFIX = '!'
120 +
121 def __init__ ( self, dep_str=None, priority=50, resolving_package=None ):
122 super ( SimpleIgnoreDependencyRule, self ) . __init__ (
123 dep_str=dep_str,
124 @@ -43,6 +45,8 @@ class SimpleDependencyRule ( SimpleRule ):
125
126 class SimpleFuzzyIgnoreDependencyRule ( FuzzySimpleRule ):
127
128 + RULE_PREFIX = '%'
129 +
130 def __init__ ( self, dep_str=None, priority=51, resolving_package=None ):
131 super ( SimpleFuzzyIgnoreDependencyRule, self ) . __init__ (
132 dep_str=dep_str,
133 @@ -52,6 +56,9 @@ class SimpleFuzzyIgnoreDependencyRule ( FuzzySimpleRule ):
134 )
135
136 class SimpleFuzzyDependencyRule ( FuzzySimpleRule ):
137 +
138 + RULE_PREFIX = '~'
139 +
140 def __init__ ( self, resolving_package, dep_str=None, priority=71 ):
141 super ( SimpleFuzzyDependencyRule, self ) . __init__ (
142 dep_str=dep_str,
143 @@ -117,11 +124,8 @@ class SimpleDependencyRulePool ( deprule.DependencyRulePool ):
144 raises: IOError (fh)
145 """
146 for rule in self.rules:
147 - to_write = fh.export_rule()
148 - if isinstance ( to_write, str ):
149 - fh.write ( to_write )
150 - else:
151 - fh.writelines ( to_write )
152 + fh.write ( str ( rule ) )
153 + fh.write ( '\n' )
154
155 # --- end of export_rules (...) ---
156
157 @@ -134,9 +138,9 @@ class SimpleDependencyRuleReader ( object ):
158 comment_chars = "#;"
159
160 # todo: const/config?
161 - package_ignore = '!'
162 - fuzzy = '~'
163 - fuzzy_ignore = '%'
164 + package_ignore = SimpleIgnoreDependencyRule.RULE_PREFIX
165 + fuzzy = SimpleFuzzyDependencyRule.RULE_PREFIX
166 + fuzzy_ignore = SimpleFuzzyIgnoreDependencyRule.RULE_PREFIX
167
168 BREAK_PARSING = frozenset (( '#! NOPARSE', '#! BREAK' ))
169
170 @@ -146,12 +150,6 @@ class SimpleDependencyRuleReader ( object ):
171 pass
172 # --- end of __init__ (...) ---
173
174 -
175 - def _make_rule ( self, rule_str ):
176 - CLS = self.__class__
177 -
178 -
179 -
180 def read_file ( self, filepath ):
181 """Reads a file that contains simple dependency rules
182 (SimpleIgnoreDependencyRules/SimpleDependencyRules).