| 84 | | try: |
|---|
| 85 | | variables = filter(lambda b: b.get_key() in ( |
|---|
| 86 | | 'variable', 'variable_slider', 'variable_chooser', 'variable_text_box' |
|---|
| 87 | | ), self.get_enabled_blocks()) |
|---|
| 88 | | #map var id to variable block |
|---|
| 89 | | id2var = dict([(var.get_id(), var) for var in variables]) |
|---|
| 90 | | #map var id to variable code |
|---|
| 91 | | #variable code is a concatenation of all param code (without the id param) |
|---|
| 92 | | id2expr = dict([(var.get_id(), |
|---|
| 93 | | ' '.join([param.to_code() for param in filter(lambda p: p.get_key() != 'id',var.get_params())]) |
|---|
| 94 | | ) for var in variables]) |
|---|
| 95 | | #sort according to dependency |
|---|
| 96 | | sorted_ids = expr_utils.sort_variables(id2expr) |
|---|
| 97 | | #create list of sorted variable blocks |
|---|
| 98 | | variables = [id2var[id] for id in sorted_ids] |
|---|
| 99 | | return variables |
|---|
| 100 | | except: traceback.print_exc() |
|---|
| | 83 | variables = filter(lambda b: b.get_key() in ( |
|---|
| | 84 | 'variable', 'variable_slider', 'variable_chooser', 'variable_text_box' |
|---|
| | 85 | ), self.get_enabled_blocks()) |
|---|
| | 86 | #map var id to variable block |
|---|
| | 87 | id2var = dict([(var.get_id(), var) for var in variables]) |
|---|
| | 88 | #map var id to variable code |
|---|
| | 89 | #variable code is a concatenation of all param code (without the id param) |
|---|
| | 90 | id2expr = dict([(var.get_id(), |
|---|
| | 91 | ' '.join([param.to_code() for param in filter(lambda p: p.get_key() != 'id', var.get_params())]) |
|---|
| | 92 | ) for var in variables]) |
|---|
| | 93 | #sort according to dependency |
|---|
| | 94 | sorted_ids = expr_utils.sort_variables(id2expr) |
|---|
| | 95 | #create list of sorted variable blocks |
|---|
| | 96 | variables = [id2var[id] for id in sorted_ids] |
|---|
| | 97 | return variables |
|---|