Coverage for gws-app/gws/base/web/manager.py: 90%
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"""Web manager."""
3from typing import Optional
5import gws
7from . import site
9class Config(gws.Config):
10 """Web server settings."""
12 site: Optional[site.Config]
13 """Web site settings."""
14 sites: Optional[list[site.Config]]
15 """List of sites. (deprecated in 8.4)"""
16 ssl: Optional[site.SSLConfig]
17 """SSL settings."""
20class Object(gws.WebManager):
21 """Web manager."""
23 def configure(self):
24 p = self.cfg('site')
25 if not p:
26 # deprecated
27 cfgs = self.cfg('sites') or []
28 if cfgs:
29 self.root.config_warning('"web.sites" is deprecated, use "web.site"')
30 if len(cfgs) > 1:
31 raise gws.ConfigurationError('multiple web sites are not supported')
32 p = cfgs[0] if cfgs else gws.Config()
33 if self.cfg('ssl'):
34 p = gws.u.merge(p, ssl=True)
35 self.site = self.create_child(site.Object, p)
37 # deprecated
38 self.sites = [self.site]