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
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1"""Storage manager."""
3import gws
6class Config(gws.Config):
7 """Storage configuration"""
9 providers: list[gws.ext.config.storageProvider]
10 """storage providers"""
13class Object(gws.StorageManager):
14 def configure(self):
15 self.providers = []
17 for cfg in self.cfg('providers', default=[]):
18 self.create_provider(cfg)
20 def create_provider(self, cfg, **kwargs):
21 prov = self.root.create_shared(gws.ext.object.storageProvider, cfg, **kwargs)
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())
28 return prov
30 def find_provider(self, uid=None):
31 if uid:
32 for p in self.providers:
33 if p.uid == uid:
34 return p
36 elif self.providers:
37 return self.providers[0]