@@ -125,9 +125,23 @@ def __init__(self):
125
125
class MetaPlanner (Planner ):
126
126
__metaclass__ = abc .ABCMeta
127
127
128
- @abc .abstractmethod
128
+ def __init__ (self ):
129
+ super (MetaPlanner , self ).__init__ ()
130
+ self ._planners = list ()
131
+
132
+ def has_planning_method (self , method_name ):
133
+ for planner in self ._planners :
134
+ if planner .has_planning_method (method_name ):
135
+ return True
136
+
137
+ return False
138
+
129
139
def get_planning_method_names (self ):
130
- pass
140
+ method_names = set ()
141
+ for planner in self ._planners :
142
+ method_names .update (planner .get_planning_method_names ())
143
+
144
+ return list (method_names )
131
145
132
146
@abc .abstractmethod
133
147
def get_planners (self , method_name ):
@@ -210,13 +224,6 @@ def __init__(self, *planners):
210
224
def __str__ (self ):
211
225
return 'Sequence({:s})' .format (', ' .join (map (str , self ._planners )))
212
226
213
- def get_planning_method_names (self ):
214
- method_names = set ()
215
- for planner in self ._planners :
216
- method_names .update (planner .get_planning_method_names ())
217
-
218
- return list (method_names )
219
-
220
227
def get_planners (self , method_name ):
221
228
return [planner for planner in self ._planners
222
229
if planner .has_planning_method (method_name )]
@@ -261,13 +268,6 @@ def __init__(self, *planners):
261
268
def __str__ (self ):
262
269
return 'Ranked({0:s})' .format (', ' .join (map (str , self ._planners )))
263
270
264
- def get_planning_method_names (self ):
265
- method_names = set ()
266
- for planner in self ._planners :
267
- method_names .update (planner .get_planning_method_names ())
268
-
269
- return list (method_names )
270
-
271
271
def get_planners (self , method_name ):
272
272
return [planner for planner in self ._planners
273
273
if planner .has_planning_method (method_name )]
@@ -338,13 +338,6 @@ def __init__(self, *planners):
338
338
def __str__ (self ):
339
339
return 'Fallback({:s})' .format (', ' .join (map (str , self ._planners )))
340
340
341
- def get_planning_method_names (self ):
342
- method_names = set ()
343
- for planner in self ._planners :
344
- method_names .update (planner .get_planning_method_names ())
345
-
346
- return list (method_names )
347
-
348
341
def get_planners (self , method_name ):
349
342
return [planner for planner in self ._planners
350
343
if planner .has_planning_method (method_name )]
0 commit comments