Coverage for gws-app/gws/base/storage/manager.py: 71%
21 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Storage manager."""
3import gws
6class Config(gws.Config):
7 """Storage providers for data saved by users."""
9 providers: list[gws.ext.config.storageProvider]
10 """Storage providers."""
13class Object(gws.StorageManager):
14 """Storage manager."""
16 def configure(self):
17 self.providers = []
19 for cfg in self.cfg('providers', default=[]):
20 self.create_provider(cfg)
22 def create_provider(self, cfg, **kwargs):
23 prov = self.root.create_shared(gws.ext.object.storageProvider, cfg, **kwargs)
25 # replace a provider with the same uid
26 m = {p.uid: p for p in self.providers}
27 m[prov.uid] = prov
28 self.providers = list(m.values())
30 return prov
32 def find_provider(self, uid=None):
33 if uid:
34 for p in self.providers:
35 if p.uid == uid:
36 return p
38 elif self.providers:
39 return self.providers[0]