MCPcopy
hub / github.com/benoitc/gunicorn / Config

Class Config

gunicorn/config.py:46–258  ·  gunicorn/config.py::Config

Source from the content-addressed store, hash-verified

44
45
46class Config:
47
48 def __init__(self, usage=None, prog=None):
49 self.settings = make_settings()
50 self._forwarded_allow_networks = None
51 self._proxy_allow_networks = None
52 self.usage = usage
53 self.prog = prog or os.path.basename(sys.argv[0])
54 self.env_orig = os.environ.copy()
55
56 def __str__(self):
57 lines = []
58 kmax = max(len(k) for k in self.settings)
59 for k in sorted(self.settings):
60 v = self.settings[k].value
61 if callable(v):
62 v = class="st">"<{}()>".format(v.__qualname__)
63 lines.append(class="st">"{k:{kmax}} = {v}".format(k=k, v=v, kmax=kmax))
64 return class="st">"\n".join(lines)
65
66 def __getattr__(self, name):
67 if name == class="st">"settings":
68 raise AttributeError()
69 if name not in self.settings:
70 raise AttributeError(class="st">"No configuration setting for: %s" % name)
71 return self.settings[name].get()
72
73 def __setattr__(self, name, value):
74 if name != class="st">"settings" and name in self.settings:
75 raise AttributeError(class="st">"Invalid access!")
76 super().__setattr__(name, value)
77
78 def set(self, name, value):
79 if name not in self.settings:
80 raise AttributeError(class="st">"No configuration setting for: %s" % name)
81 self.settings[name].set(value)
82
83 def get_cmd_args_from_env(self):
84 if &class="cm">#x27;GUNICORN_CMD_ARGS' in self.env_orig:
85 return shlex.split(self.env_orig[&class="cm">#x27;GUNICORN_CMD_ARGS'])
86 return []
87
88 def parser(self):
89 kwargs = {
90 class="st">"usage": self.usage,
91 class="st">"prog": self.prog
92 }
93 parser = argparse.ArgumentParser(**kwargs)
94 parser.add_argument(class="st">"-v", class="st">"--version",
95 action=class="st">"version", default=argparse.SUPPRESS,
96 version=class="st">"%(prog)s (version " + __version__ + class="st">")\n",
97 help=class="st">"show program&class="cm">#x27;s version number and exit")
98 parser.add_argument(class="st">"args", nargs=class="st">"*", help=argparse.SUPPRESS)
99
100 keys = sorted(self.settings, key=self.settings.__getitem__)
101 for k in keys:
102 self.settings[k].add_option(parser)
103

Calls

no outgoing calls