1 |
commit: 1f51ac4acac24633cba9d7a531c7165af7acd09d |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Wed Jun 6 19:47:58 2012 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Wed Jun 6 19:47:58 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=1f51ac4a |
7 |
|
8 |
descriptionfields.py: reduce function calls |
9 |
modified: roverlay/descriptionfields.py |
10 |
|
11 |
--- |
12 |
roverlay/descriptionfields.py | 60 +++++++++++++++++------------------------ |
13 |
1 files changed, 25 insertions(+), 35 deletions(-) |
14 |
|
15 |
diff --git a/roverlay/descriptionfields.py b/roverlay/descriptionfields.py |
16 |
index 72175cb..710f0c0 100644 |
17 |
--- a/roverlay/descriptionfields.py |
18 |
+++ b/roverlay/descriptionfields.py |
19 |
@@ -19,6 +19,11 @@ class DescriptionField: |
20 |
|
21 |
self.name = name |
22 |
|
23 |
+ self.default_value = None |
24 |
+ self.flags = list () |
25 |
+ self.allowed_values = list () |
26 |
+ self.aliases = dict () |
27 |
+ |
28 |
# --- end of __init__ (...) --- |
29 |
|
30 |
|
31 |
@@ -36,10 +41,7 @@ class DescriptionField: |
32 |
arguments: |
33 |
* flag -- name of the flag |
34 |
""" |
35 |
- if not hasattr ( self, 'flags' ): |
36 |
- self.flags = set () |
37 |
- |
38 |
- self.flags.add ( flag.lower() ) |
39 |
+ self.flags.append ( flag.lower() ) |
40 |
|
41 |
return None |
42 |
|
43 |
@@ -55,10 +57,7 @@ class DescriptionField: |
44 |
* value -- allowed value |
45 |
""" |
46 |
|
47 |
- if not hasattr ( self, 'allowed_values' ): |
48 |
- self.allowed_values = set () |
49 |
- |
50 |
- self.allowed_values.add ( value ) |
51 |
+ self.allowed_values.append ( value ) |
52 |
|
53 |
return None |
54 |
|
55 |
@@ -69,8 +68,7 @@ class DescriptionField: |
56 |
"""Removes a flag from this DescriptionField. Does nothing if the flag |
57 |
does not exist. |
58 |
""" |
59 |
- if hasattr ( self, 'flags' ): |
60 |
- self.flags.discard ( flag.lower() ) |
61 |
+ self.flags.discard ( flag.lower() ) |
62 |
return None |
63 |
|
64 |
# --- end of del_flag (...) --- |
65 |
@@ -90,8 +88,6 @@ class DescriptionField: |
66 |
|
67 |
raises: KeyError if alias_type unknown. |
68 |
""" |
69 |
- if not hasattr ( self, 'aliases' ): |
70 |
- self.aliases = dict () |
71 |
|
72 |
to_add = dict ( |
73 |
withcase = alias, |
74 |
@@ -100,9 +96,9 @@ class DescriptionField: |
75 |
|
76 |
|
77 |
if not alias_type in self.aliases: |
78 |
- self.aliases [alias_type] = set () |
79 |
+ self.aliases [alias_type] = list () |
80 |
|
81 |
- self.aliases [alias_type] . add ( to_add ) |
82 |
+ self.aliases [alias_type] . append ( to_add ) |
83 |
|
84 |
return None |
85 |
|
86 |
@@ -128,7 +124,7 @@ class DescriptionField: |
87 |
"""Returns the default value for this DescriptionField if it exists, |
88 |
else None. |
89 |
""" |
90 |
- return self.default_value if hasattr ( self, 'default_value' ) else None |
91 |
+ return self.default_value |
92 |
|
93 |
# --- end of get_default_value (...) --- |
94 |
|
95 |
@@ -146,7 +142,7 @@ class DescriptionField: |
96 |
|
97 |
def get_flags ( self ): |
98 |
"""Returns the flags of this DescriptionField or an empty list (=no flags).""" |
99 |
- return self.flags if hasattr ( self, 'flags' ) else [] |
100 |
+ return self.flags |
101 |
|
102 |
# --- end of get_flags (...) --- |
103 |
|
104 |
@@ -155,7 +151,7 @@ class DescriptionField: |
105 |
"""Returns the allowed values of this DescriptionField or an empty list, |
106 |
which should be interpreted as 'no value restriction'. |
107 |
""" |
108 |
- return self.allowed_values if hasattr ( self, 'allowed_values' ) else [] |
109 |
+ return self.allowed_values |
110 |
|
111 |
# --- end of get_allowed_values (...) --- |
112 |
|
113 |
@@ -181,9 +177,6 @@ class DescriptionField: |
114 |
if not field_identifier: |
115 |
# bad identifier |
116 |
return False |
117 |
- elif not hasattr ( self, aliases ): |
118 |
- # no aliases |
119 |
- return False |
120 |
|
121 |
if 'withcase' in self.aliases: |
122 |
if field_identifier in self.aliases ['withcase']: |
123 |
@@ -194,6 +187,8 @@ class DescriptionField: |
124 |
if field_id_lower in self.aliases ['nocase']: |
125 |
return True |
126 |
|
127 |
+ return False |
128 |
+ |
129 |
# --- end of matches_alias (...) --- |
130 |
|
131 |
|
132 |
@@ -203,9 +198,6 @@ class DescriptionField: |
133 |
arguments: |
134 |
* flag -- |
135 |
""" |
136 |
- if not hasattr ( self, 'flags' ): |
137 |
- return False |
138 |
- |
139 |
return bool ( flag.lower() in self.flags ) |
140 |
|
141 |
def value_allowed ( self, value, nocase=True ): |
142 |
@@ -215,18 +207,17 @@ class DescriptionField: |
143 |
* value -- value to check |
144 |
* nocase -- if True (the default): be case insensitive |
145 |
""" |
146 |
- allowed_values = self.get_allowed_values () |
147 |
|
148 |
- if not allowed_values: |
149 |
+ if not self.allowed_values: |
150 |
return True |
151 |
elif nocase: |
152 |
lowval = value.lower() |
153 |
- for allowed in allowed_values: |
154 |
+ for allowed in self.allowed_values: |
155 |
if allowed.lower() == lowval: |
156 |
return True |
157 |
|
158 |
else: |
159 |
- return bool ( value in allowed_values ) |
160 |
+ return bool ( value in self.allowed_values ) |
161 |
|
162 |
return False |
163 |
|
164 |
@@ -315,22 +306,21 @@ class DescriptionFields: |
165 |
flagmap = dict () |
166 |
optionmap = dict ( |
167 |
defaults = dict (), |
168 |
- allowed_values = set () |
169 |
+ allowed_values = list () |
170 |
) |
171 |
|
172 |
for field_name in self.fields.keys(): |
173 |
- |
174 |
- d = self.fields [field_name].get_default_value() |
175 |
+ d = self.fields [field_name].default_value |
176 |
if not d is None: |
177 |
optionmap ['defaults'] [field_name] = d |
178 |
|
179 |
- if self.fields [field_name].get_allowed_values(): |
180 |
- optionmap ['allowed_values'].add ( field_name ) |
181 |
+ if self.fields [field_name].allowed_values: |
182 |
+ optionmap ['allowed_values'].append ( field_name ) |
183 |
|
184 |
- for flag in self.fields [field_name].get_flags(): |
185 |
+ for flag in self.fields [field_name].flags: |
186 |
if not flag in flagmap: |
187 |
- flagmap [flag] = set () |
188 |
- flagmap [flag].add ( field_name ) |
189 |
+ flagmap [flag] = list () |
190 |
+ flagmap [flag].append ( field_name ) |
191 |
|
192 |
self._fields_by_flag = flagmap |
193 |
self._fields_by_option = optionmap |