@@ -125,23 +125,9 @@ def __init__(self):
125
125
class MetaPlanner (Planner ):
126
126
__metaclass__ = abc .ABCMeta
127
127
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
-
128
+ @abc .abstractmethod
139
129
def get_planning_method_names (self ):
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 )
130
+ pass
145
131
146
132
@abc .abstractmethod
147
133
def get_planners (self , method_name ):
@@ -224,6 +210,13 @@ def __init__(self, *planners):
224
210
def __str__ (self ):
225
211
return 'Sequence({:s})' .format (', ' .join (map (str , self ._planners )))
226
212
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
+
227
220
def get_planners (self , method_name ):
228
221
return [planner for planner in self ._planners
229
222
if planner .has_planning_method (method_name )]
@@ -268,6 +261,13 @@ def __init__(self, *planners):
268
261
def __str__ (self ):
269
262
return 'Ranked({0:s})' .format (', ' .join (map (str , self ._planners )))
270
263
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,6 +338,13 @@ 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
+
341
348
def get_planners (self , method_name ):
342
349
return [planner for planner in self ._planners
343
350
if planner .has_planning_method (method_name )]
0 commit comments