(items: list[StackItem], oparg: int)
| 1010 | ) |
| 1011 | |
| 1012 | def expand(items: list[StackItem], oparg: int) -> list[StackItem]: |
| 1013 | # Only replace array item with scalar if no more than one item is an array |
| 1014 | index = -1 |
| 1015 | for i, item in enumerate(items): |
| 1016 | if "oparg" in item.size: |
| 1017 | if index >= 0: |
| 1018 | return items |
| 1019 | index = i |
| 1020 | if index < 0: |
| 1021 | return items |
| 1022 | try: |
| 1023 | count = int(eval(items[index].size.replace("oparg", str(oparg)))) |
| 1024 | except ValueError: |
| 1025 | return items |
| 1026 | return items[:index] + [ |
| 1027 | StackItem(items[index].name + f"_{i}", "", items[index].peek, items[index].used) for i in range(count) |
| 1028 | ] + items[index+1:] |
| 1029 | |
| 1030 | def scalarize_stack(stack: StackEffect, oparg: int) -> StackEffect: |
| 1031 | stack.inputs = expand(stack.inputs, oparg) |
searching dependent graphs…