| 1 |  |  | import asyncio | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  | from .standard_address_space_part3 import create_standard_address_space_Part3 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | from .standard_address_space_part4 import create_standard_address_space_Part4 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  | from .standard_address_space_part5 import create_standard_address_space_Part5 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | from .standard_address_space_part8 import create_standard_address_space_Part8 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  | from .standard_address_space_part9 import create_standard_address_space_Part9 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  | from .standard_address_space_part10 import create_standard_address_space_Part10 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  | from .standard_address_space_part11 import create_standard_address_space_Part11 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  | from .standard_address_space_part13 import create_standard_address_space_Part13 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  | class PostponeReferences: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |     def __init__(self, server): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  |         self.server = server | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  |         self.postponed_refs = None | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  |         self.postponed_nodes = None | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 |  |  |         #self.add_nodes = self.server.add_nodes | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  |     async def add_nodes(self, nodes): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  |         async for node in self.server.try_add_nodes(nodes, check=False): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  |             self.postponed_nodes.append(node) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 |  |  |     async def add_references(self, refs): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  |         async for ref in self.server.try_add_references(refs): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  |         #g = self.server.try_add_references(refs) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  |             self.postponed_refs.append(ref) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 |  |  |             # no return | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  |     async def __aenter__(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 |  |  |         self.postponed_refs = [] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 |  |  |         self.postponed_nodes = [] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  |         await asyncio.sleep(0) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  |         return self | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 37 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 38 |  |  |     async def __aexit__(self, exc_type, exc_val, exc_tb): | 
            
                                                                        
                            
            
                                    
            
            
                | 39 |  |  |         if exc_type is None and exc_val is None: | 
            
                                                                        
                            
            
                                    
            
            
                | 40 |  |  |             remaining_nodes = [] | 
            
                                                                        
                            
            
                                    
            
            
                | 41 |  |  |             remaining_refs = [] | 
            
                                                                        
                            
            
                                    
            
            
                | 42 |  |  |             async for remaining_node in self.server.try_add_nodes(self.postponed_nodes, check=False): | 
            
                                                                        
                            
            
                                    
            
            
                | 43 |  |  |                 remaining_nodes.append(remaining_node) | 
            
                                                                        
                            
            
                                    
            
            
                | 44 |  |  |             #remaining_nodes = self.server.try_add_nodes(self.postponed_nodes, check=False) | 
            
                                                                        
                            
            
                                    
            
            
                | 45 |  |  |             if len(remaining_nodes): | 
            
                                                                        
                            
            
                                    
            
            
                | 46 |  |  |                 raise RuntimeError(f"There are remaining nodes: {remaining_nodes!r}") | 
            
                                                                        
                            
            
                                    
            
            
                | 47 |  |  |             async for remaining_reference in self.server.try_add_references(self.postponed_refs): | 
            
                                                                        
                            
            
                                    
            
            
                | 48 |  |  |                 remaining_refs.append(remaining_reference) | 
            
                                                                        
                            
            
                                    
            
            
                | 49 |  |  |             #remaining_refs = list(await self.server.try_add_references(self.postponed_refs)) | 
            
                                                                        
                            
            
                                    
            
            
                | 50 |  |  |             if len(remaining_refs): | 
            
                                                                        
                            
            
                                    
            
            
                | 51 |  |  |                 raise RuntimeError(f"There are remaining refs: {remaining_refs!r}") | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 |  |  | async def fill_address_space(nodeservice): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |     async with PostponeReferences(nodeservice) as server: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  |         await create_standard_address_space_Part3(server) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |         await create_standard_address_space_Part4(server) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 |  |  |         await create_standard_address_space_Part5(server) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  |         await create_standard_address_space_Part8(server) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  |         await create_standard_address_space_Part9(server) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |         await create_standard_address_space_Part10(server) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  |         await create_standard_address_space_Part11(server) | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 63 |  |  |         await create_standard_address_space_Part13(server) | 
            
                                                        
            
                                    
            
            
                | 64 |  |  |  |