| 27 | return _newSymbolTable(top, filename) |
| 28 | |
| 29 | class SymbolTableFactory: |
| 30 | def __init__(self): |
| 31 | self.__memo = weakref.WeakValueDictionary() |
| 32 | |
| 33 | def new(self, table, filename): |
| 34 | if table.type == _symtable.TYPE_FUNCTION: |
| 35 | return Function(table, filename) |
| 36 | if table.type == _symtable.TYPE_CLASS: |
| 37 | return Class(table, filename) |
| 38 | return SymbolTable(table, filename) |
| 39 | |
| 40 | def __call__(self, table, filename): |
| 41 | key = table, filename |
| 42 | obj = self.__memo.get(key, None) |
| 43 | if obj is None: |
| 44 | obj = self.__memo[key] = self.new(table, filename) |
| 45 | return obj |
| 46 | |
| 47 | _newSymbolTable = SymbolTableFactory() |
| 48 |
no outgoing calls
no test coverage detected
searching dependent graphs…