Caching.
This commit is contained in:
		
							parent
							
								
									c1eeacc0b4
								
							
						
					
					
						commit
						21ab5628b0
					
				
							
								
								
									
										17
									
								
								src/snek/system/cache.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/snek/system/cache.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					import functools 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cache = functools.cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def async_cache(func):
 | 
				
			||||||
 | 
					    cache = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @functools.wraps(func)
 | 
				
			||||||
 | 
					    async def wrapper(*args):
 | 
				
			||||||
 | 
					        if args in cache:
 | 
				
			||||||
 | 
					            return cache[args]
 | 
				
			||||||
 | 
					        result = await func(*args)
 | 
				
			||||||
 | 
					        cache[args] = result
 | 
				
			||||||
 | 
					        return result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return wrapper
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user