Coverage for gws-app/gws/base/storage/manager.py: 0%

22 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1"""Storage manager.""" 

2 

3import gws 

4 

5 

6class Config(gws.Config): 

7 """Storage configuration""" 

8 

9 providers: list[gws.ext.config.storageProvider] 

10 """storage providers""" 

11 

12 

13class Object(gws.StorageManager): 

14 def configure(self): 

15 self.providers = [] 

16 

17 for cfg in self.cfg('providers', default=[]): 

18 self.create_provider(cfg) 

19 

20 def create_provider(self, cfg, **kwargs): 

21 prov = self.root.create_shared(gws.ext.object.storageProvider, cfg, **kwargs) 

22 

23 # replace a provider with the same uid 

24 m = {p.uid: p for p in self.providers} 

25 m[prov.uid] = prov 

26 self.providers = list(m.values()) 

27 

28 return prov 

29 

30 def find_provider(self, uid=None): 

31 if uid: 

32 for p in self.providers: 

33 if p.uid == uid: 

34 return p 

35 

36 elif self.providers: 

37 return self.providers[0]