Mercurial > p > roundup > code
annotate roundup/configuration.py @ 6436:1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
Implement experimental support to allow tracker to use an alternate
authentication variable replacing ROUNDUP_USER. Also add -I option to
roundup-server to whitelist HTTP headers that should be passed through
to the tracker.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Mon, 14 Jun 2021 19:33:27 -0400 |
| parents | 08e209a7f22b |
| children | 8f1b91756457 |
| rev | line source |
|---|---|
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1 # Roundup Issue Tracker configuration support |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2 # |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
3 __docformat__ = "restructuredtext" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
4 |
|
5517
0cdf19b82354
Fix issue2550994: breakage caused by configparser backports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5494
diff
changeset
|
5 # Some systems have a backport of the Python 3 configparser module to |
|
0cdf19b82354
Fix issue2550994: breakage caused by configparser backports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5494
diff
changeset
|
6 # Python 2: <https://pypi.org/project/configparser/>. That breaks |
|
0cdf19b82354
Fix issue2550994: breakage caused by configparser backports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5494
diff
changeset
|
7 # Roundup if used with Python 2 because it generates unicode objects |
|
0cdf19b82354
Fix issue2550994: breakage caused by configparser backports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5494
diff
changeset
|
8 # where not expected by the Python code. Thus, a version check is |
|
0cdf19b82354
Fix issue2550994: breakage caused by configparser backports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5494
diff
changeset
|
9 # used here instead of try/except. |
|
0cdf19b82354
Fix issue2550994: breakage caused by configparser backports.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5494
diff
changeset
|
10 import sys |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
11 import getopt |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
12 import logging, logging.config |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
13 import os |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
14 import re |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
15 import time |
|
3878
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3877
diff
changeset
|
16 import smtplib |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
17 |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
18 import roundup.date |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
19 |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
20 from roundup.anypy.strings import b2s |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
21 import roundup.anypy.random_ as random_ |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
22 import binascii |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
23 from roundup.i18n import _ |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
24 |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
25 from roundup.backends import list_backends |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
26 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
27 if sys.version_info[0] > 2: |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
28 import configparser # Python 3 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
29 else: |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
30 import ConfigParser as configparser # Python 2 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
31 |
| 6126 | 32 from roundup.exceptions import RoundupException |
|
6123
c177e7128dc9
issue2551083 Replace BaseException and Exception with RoundupException
John Rouillard <rouilj@ieee.org>
parents:
6053
diff
changeset
|
33 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
34 # XXX i don't think this module needs string translation, does it? |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
35 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
36 ### Exceptions |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
37 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
38 |
|
6123
c177e7128dc9
issue2551083 Replace BaseException and Exception with RoundupException
John Rouillard <rouilj@ieee.org>
parents:
6053
diff
changeset
|
39 class ConfigurationError(RoundupException): |
|
3777
74aebbbea305
Sorry for the mega-patch - was all done on the train:
Richard Jones <richard@users.sourceforge.net>
parents:
3725
diff
changeset
|
40 pass |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
41 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
42 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
43 class NoConfigError(ConfigurationError): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
44 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
45 """Raised when configuration loading fails |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
46 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
47 Constructor parameters: path to the directory that was used as HOME |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
48 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
49 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
50 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
51 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
52 return "No valid configuration files found in directory %s" \ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
53 % self.args[0] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
54 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
55 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
56 class InvalidOptionError(ConfigurationError, KeyError, AttributeError): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
57 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
58 """Attempted access to non-existing configuration option |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
59 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
60 Configuration options may be accessed as configuration object |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
61 attributes or items. So this exception instances also are |
|
3820
771248aa8302
typos in docstrings
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3788
diff
changeset
|
62 instances of KeyError (invalid item access) and AttributeError |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
63 (invalid attribute access). |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
64 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
65 Constructor parameter: option name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
66 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
67 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
68 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
69 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
70 return "Unsupported configuration option: %s" % self.args[0] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
71 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
72 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
73 class OptionValueError(ConfigurationError, ValueError): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
74 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
75 """Raised upon attempt to assign an invalid value to config option |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
76 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
77 Constructor parameters: Option instance, offending value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
78 and optional info string. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
79 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
80 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
81 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
82 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
83 _args = self.args |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
84 _rv = "Invalid value for %(option)s: %(value)r" % { |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
85 "option": _args[0].name, "value": _args[1]} |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
86 if len(_args) > 2: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
87 _rv += "\n".join(("",) + _args[2:]) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
88 return _rv |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
89 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
90 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
91 class OptionUnsetError(ConfigurationError): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
92 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
93 """Raised when no Option value is available - neither set, nor default |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
94 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
95 Constructor parameters: Option instance. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
96 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
97 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
98 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
99 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
100 return "%s is not set and has no default" % self.args[0].name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
101 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
102 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
103 class UnsetDefaultValue: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
104 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
105 """Special object meaning that default value for Option is not specified""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
106 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
107 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
108 return "NO DEFAULT" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
109 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
110 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
111 NODEFAULT = UnsetDefaultValue() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
112 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
113 |
|
5878
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
114 def create_token(size=32): |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
115 return b2s(binascii.b2a_base64(random_.token_bytes(size)).strip()) |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
116 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
117 ### Option classes |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
118 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
119 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
120 class Option: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
121 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
122 """Single configuration option. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
123 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
124 Options have following attributes: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
125 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
126 config |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
127 reference to the containing Config object |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
128 section |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
129 name of the section in the tracker .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
130 setting |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
131 option name in the tracker .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
132 default |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
133 default option value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
134 description |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
135 option description. Makes a comment in the tracker .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
136 name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
137 "canonical name" of the configuration option. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
138 For items in the 'main' section this is uppercased |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
139 'setting' name. For other sections, the name is |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
140 composed of the section name and the setting name, |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
141 joined with underscore. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
142 aliases |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
143 list of "also known as" names. Used to access the settings |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
144 by old names used in previous Roundup versions. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
145 "Canonical name" is also included. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
146 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
147 The name and aliases are forced to be uppercase. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
148 The setting name is forced to lowercase. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
149 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
150 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
151 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
152 class_description = None |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
153 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
154 def __init__(self, config, section, setting, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
155 default=NODEFAULT, description=None, aliases=None): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
156 self.config = config |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
157 self.section = section |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
158 self.setting = setting.lower() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
159 self.default = default |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
160 self.description = description |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
161 self.name = setting.upper() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
162 if section != "main": |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
163 self.name = "_".join((section.upper(), self.name)) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
164 if aliases: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
165 self.aliases = [alias.upper() for alias in list(aliases)] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
166 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
167 self.aliases = [] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
168 self.aliases.insert(0, self.name) |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
169 # convert default to internal representation |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
170 if default is NODEFAULT: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
171 _value = default |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
172 else: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
173 _value = self.str2value(default) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
174 # value is private. use get() and set() to access |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
175 self._value = self._default_value = _value |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
176 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
177 def str2value(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
178 """Return 'value' argument converted to internal representation""" |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
179 return value |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
180 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
181 def _value2str(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
182 """Return 'value' argument converted to external representation |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
183 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
184 This is actual conversion method called only when value |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
185 is not NODEFAULT. Heirs with different conversion rules |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
186 override this method, not the public .value2str(). |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
187 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
188 """ |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
189 return str(value) |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
190 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
191 def value2str(self, value=NODEFAULT, current=0): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
192 """Return 'value' argument converted to external representation |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
193 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
194 If 'current' is True, use current option value. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
195 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
196 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
197 if current: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
198 value = self._value |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
199 if value is NODEFAULT: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
200 return str(value) |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
201 else: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
202 return self._value2str(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
203 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
204 def get(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
205 """Return current option value""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
206 if self._value is NODEFAULT: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
207 raise OptionUnsetError(self) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
208 return self._value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
209 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
210 def set(self, value): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
211 """Update the value""" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
212 self._value = self.str2value(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
213 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
214 def reset(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
215 """Reset the value to default""" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
216 self._value = self._default_value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
217 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
218 def isdefault(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
219 """Return True if current value is the default one""" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
220 return self._value == self._default_value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
221 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
222 def isset(self): |
|
3820
771248aa8302
typos in docstrings
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3788
diff
changeset
|
223 """Return True if the value is available (either set or default)""" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
224 return self._value != NODEFAULT |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
225 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
226 def __str__(self): |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
227 return self.value2str(self._value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
228 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
229 def __repr__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
230 if self.isdefault(): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
231 _format = "<%(class)s %(name)s (default): %(value)s>" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
232 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
233 _format = "<%(class)s %(name)s (default: %(default)s): %(value)s>" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
234 return _format % { |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
235 "class": self.__class__.__name__, |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
236 "name": self.name, |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
237 "default": self.value2str(self._default_value), |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
238 "value": self.value2str(self._value), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
239 } |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
240 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
241 def format(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
242 """Return .ini file fragment for this option""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
243 _desc_lines = [] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
244 for _description in (self.description, self.class_description): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
245 if _description: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
246 _desc_lines.extend(_description.split("\n")) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
247 # comment out the setting line if there is no value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
248 if self.isset(): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
249 _is_set = "" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
250 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
251 _is_set = "#" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
252 _rv = "# %(description)s\n# Default: %(default)s\n" \ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
253 "%(is_set)s%(name)s = %(value)s\n" % { |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
254 "description": "\n# ".join(_desc_lines), |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
255 "default": self.value2str(self._default_value), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
256 "name": self.setting, |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
257 "value": self.value2str(self._value), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
258 "is_set": _is_set |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
259 } |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
260 return _rv |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
261 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
262 def load_ini(self, config): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
263 """Load value from ConfigParser object""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
264 if config.has_option(self.section, self.setting): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
265 self.set(config.get(self.section, self.setting)) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
266 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
267 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
268 class BooleanOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
269 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
270 """Boolean option: yes or no""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
271 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
272 class_description = "Allowed values: yes, no" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
273 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
274 def _value2str(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
275 if value: |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
276 return "yes" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
277 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
278 return "no" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
279 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
280 def str2value(self, value): |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
281 if isinstance(value, type("")): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
282 _val = value.lower() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
283 if _val in ("yes", "true", "on", "1"): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
284 _val = 1 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
285 elif _val in ("no", "false", "off", "0"): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
286 _val = 0 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
287 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
288 raise OptionValueError(self, value, self.class_description) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
289 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
290 _val = value and 1 or 0 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
291 return _val |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
292 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
293 |
|
3544
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
294 class WordListOption(Option): |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
295 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
296 """List of strings""" |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
297 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
298 class_description = "Allowed values: comma-separated list of words" |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
299 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
300 def _value2str(self, value): |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
301 return ','.join(value) |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
302 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
303 def str2value(self, value): |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
304 return value.split(',') |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
305 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
306 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
307 class RunDetectorOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
308 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
309 """When a detector is run: always, never or for new items only""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
310 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
311 class_description = "Allowed values: yes, no, new" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
312 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
313 def str2value(self, value): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
314 _val = value.lower() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
315 if _val in ("yes", "no", "new"): |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
316 return _val |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
317 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
318 raise OptionValueError(self, value, self.class_description) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
319 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
320 |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
321 class CsrfSettingOption(Option): |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
322 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
323 """How should a csrf measure be enforced: required, yes, logfailure, no""" |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
324 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
325 class_description = "Allowed values: required, yes, logfailure, no" |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
326 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
327 def str2value(self, value): |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
328 _val = value.lower() |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
329 if _val in ("required", "yes", "logfailure", "no"): |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
330 return _val |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
331 else: |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
332 raise OptionValueError(self, value, self.class_description) |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
333 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
334 |
|
5212
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
335 class SameSiteSettingOption(Option): |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
336 |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
337 """How should the SameSite cookie setting be set: strict, lax |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
338 or should it not be added (none)""" |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
339 |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
340 class_description = "Allowed values: Strict, Lax, None" |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
341 |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
342 def str2value(self, value): |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
343 _val = value.lower() |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
344 if _val in ("strict", "lax", "none"): |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
345 return _val.capitalize() |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
346 else: |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
347 raise OptionValueError(self, value, self.class_description) |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
348 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
349 |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
350 class DatabaseBackend(Option): |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
351 """handle exact text of backend and make sure it's available""" |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
352 class_description = "Available backends: %s" % ", ".join(list_backends()) |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
353 |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
354 def str2value(self, value): |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
355 _val = value.lower() |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
356 if _val in list_backends(): |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
357 return _val |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
358 else: |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
359 raise OptionValueError(self, value, self.class_description) |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
360 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
361 |
|
5305
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
362 class HtmlToTextOption(Option): |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
363 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
364 """What module should be used to convert emails with only text/html |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
365 parts into text for display in roundup. Choose from beautifulsoup |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
366 4, dehtml - the internal code or none to disable html to text |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
367 conversion. If beautifulsoup chosen but not available, dehtml will |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
368 be used. |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
369 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
370 """ |
|
5305
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
371 |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
372 class_description = "Allowed values: beautifulsoup, dehtml, none" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
373 |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
374 def str2value(self, value): |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
375 _val = value.lower() |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
376 if _val in ("beautifulsoup", "dehtml", "none"): |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
377 return _val |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
378 else: |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
379 raise OptionValueError(self, value, self.class_description) |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
380 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
381 |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
382 class EmailBodyOption(Option): |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
383 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
384 """When to replace message body or strip quoting: always, never |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
385 or for new items only""" |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
386 |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
387 class_description = "Allowed values: yes, no, new" |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
388 |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
389 def str2value(self, value): |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
390 _val = value.lower() |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
391 if _val in ("yes", "no", "new"): |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
392 return _val |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
393 else: |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
394 raise OptionValueError(self, value, self.class_description) |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
395 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
396 |
|
4887
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
397 class IsolationOption(Option): |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
398 """Database isolation levels""" |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
399 |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
400 allowed = ['read uncommitted', 'read committed', 'repeatable read', |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
401 'serializable'] |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
402 class_description = "Allowed values: %s" % ', '.join("'%s'" % a |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
403 for a in allowed) |
|
4887
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
404 |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
405 def str2value(self, value): |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
406 _val = value.lower() |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
407 if _val in self.allowed: |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
408 return _val |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
409 raise OptionValueError(self, value, self.class_description) |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
410 |
| 6358 | 411 class IndexerOption(Option): |
| 412 """Valid options for indexer""" | |
| 413 | |
| 414 allowed = ['', 'xapian', 'whoosh', 'native'] | |
| 415 class_description = "Allowed values: %s" % ', '.join("'%s'" % a | |
| 416 for a in allowed) | |
| 417 | |
| 418 def str2value(self, value): | |
| 419 _val = value.lower() | |
| 420 if _val in self.allowed: | |
| 421 return _val | |
| 422 raise OptionValueError(self, value, self.class_description) | |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
423 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
424 class MailAddressOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
425 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
426 """Email address |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
427 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
428 Email addresses may be either fully qualified or local. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
429 In the latter case MAIL_DOMAIN is automatically added. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
430 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
431 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
432 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
433 def get(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
434 _val = Option.get(self) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
435 if "@" not in _val: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
436 _val = "@".join((_val, self.config["MAIL_DOMAIN"])) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
437 return _val |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
438 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
439 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
440 class FilePathOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
441 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
442 """File or directory path name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
443 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
444 Paths may be either absolute or relative to the HOME. |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
445 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
446 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
447 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
448 class_description = "The path may be either absolute or relative\n" \ |
|
5102
96dc9f07340a
issue2161722: oudated docs
John Rouillard <rouilj@ieee.org>
parents:
5098
diff
changeset
|
449 "to the directory containing this config file." |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
450 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
451 def get(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
452 _val = Option.get(self) |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
453 if _val and not os.path.isabs(_val): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
454 _val = os.path.join(self.config["HOME"], _val) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
455 return _val |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
456 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
457 |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
458 class MultiFilePathOption(Option): |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
459 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
460 """List of space seperated File or directory path name |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
461 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
462 Paths may be either absolute or relative to the HOME. None |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
463 is returned if there are no elements. |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
464 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
465 """ |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
466 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
467 class_description = "The space separated paths may be either absolute\n" \ |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
468 "or relative to the directory containing this config file." |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
469 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
470 def get(self): |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
471 pathlist = [] |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
472 _val = Option.get(self) |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
473 for elem in _val.split(): |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
474 if elem and not os.path.isabs(elem): |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
475 pathlist.append(os.path.join(self.config["HOME"], elem)) |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
476 else: |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
477 pathlist.append(elem) |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
478 if pathlist: |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
479 return pathlist |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
480 else: |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
481 return None |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
482 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
483 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
484 class FloatNumberOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
485 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
486 """Floating point numbers""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
487 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
488 def str2value(self, value): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
489 try: |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
490 return float(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
491 except ValueError: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
492 raise OptionValueError(self, value, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
493 "Floating point number required") |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
494 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
495 def _value2str(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
496 _val = str(value) |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
497 # strip fraction part from integer numbers |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
498 if _val.endswith(".0"): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
499 _val = _val[:-2] |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
500 return _val |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
501 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
502 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
503 class IntegerNumberOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
504 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
505 """Integer numbers""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
506 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
507 def str2value(self, value): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
508 try: |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
509 return int(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
510 except ValueError: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
511 raise OptionValueError(self, value, "Integer number required") |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
512 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
513 |
|
5772
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
514 class IntegerNumberGeqZeroOption(Option): |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
515 |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
516 """Integer numbers greater than or equal to zero.""" |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
517 |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
518 def str2value(self, value): |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
519 try: |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
520 v = int(value) |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
521 if v < 0: |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
522 raise OptionValueError(self, value, |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
523 "Integer number greater than or equal to zero required") |
|
5773
1151a2b31f1d
Yeah, let's actually return the option value.....
John Rouillard <rouilj@ieee.org>
parents:
5772
diff
changeset
|
524 return v |
|
5772
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
525 except OptionValueError: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
526 raise # pass through subclass |
|
5772
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
527 except ValueError: |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
528 raise OptionValueError(self, value, "Integer number required") |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
529 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
530 |
|
3609
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
531 class OctalNumberOption(Option): |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
532 |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
533 """Octal Integer numbers""" |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
534 |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
535 def str2value(self, value): |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
536 try: |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
537 return int(value, 8) |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
538 except ValueError: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
539 raise OptionValueError(self, value, |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
540 "Octal Integer number required") |
|
3609
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
541 |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
542 def _value2str(self, value): |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
543 return oct(value) |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
544 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
545 |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
546 class MandatoryOption(Option): |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
547 """Option must not be empty""" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
548 def str2value(self, value): |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
549 if not value: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
550 raise OptionValueError(self, value, "Value must not be empty.") |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
551 else: |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
552 return value |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
553 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
554 |
|
5770
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
555 class WebUrlOption(Option): |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
556 """URL MUST start with http/https scheme and end with '/'""" |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
557 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
558 def str2value(self, value): |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
559 if not value: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
560 raise OptionValueError(self, value, "Value must not be empty.") |
|
5770
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
561 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
562 error_msg = '' |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
563 if not value.startswith(('http://', 'https://')): |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
564 error_msg = "Value must start with http:// or https://.\n" |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
565 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
566 if not value.endswith('/'): |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
567 error_msg += "Value must end with /." |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
568 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
569 if error_msg: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
570 raise OptionValueError(self, value, error_msg) |
|
5770
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
571 else: |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
572 return value |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
573 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
574 |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
575 class NullableOption(Option): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
576 |
|
4074
e039f3cbbb96
Make RDBMS cache-size configurable.
Stefan Seefeld <stefan@seefeld.name>
parents:
4013
diff
changeset
|
577 """Option that is set to None if its string value is one of NULL strings |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
578 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
579 Default nullable strings list contains empty string only. |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
580 There is constructor parameter allowing to specify different nullables. |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
581 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
582 Conversion to external representation returns the first of the NULL |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
583 strings list when the value is None. |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
584 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
585 """ |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
586 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
587 NULL_STRINGS = ("",) |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
588 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
589 def __init__(self, config, section, setting, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
590 default=NODEFAULT, description=None, aliases=None, |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
591 null_strings=NULL_STRINGS): |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
592 self.null_strings = list(null_strings) |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
593 Option.__init__(self, config, section, setting, default, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
594 description, aliases) |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
595 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
596 def str2value(self, value): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
597 if value in self.null_strings: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
598 return None |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
599 else: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
600 return value |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
601 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
602 def _value2str(self, value): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
603 if value is None: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
604 return self.null_strings[0] |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
605 else: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
606 return value |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
607 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
608 |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
609 class NullableFilePathOption(NullableOption, FilePathOption): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
610 |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
611 # .get() and class_description are from FilePathOption, |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
612 get = FilePathOption.get |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
613 class_description = FilePathOption.class_description |
|
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
614 # everything else taken from NullableOption (inheritance order) |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
615 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
616 |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
617 class TimezoneOption(Option): |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
618 |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
619 class_description = \ |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
620 "If pytz module is installed, value may be any valid\n" \ |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
621 "timezone specification (e.g. EET or Europe/Warsaw).\n" \ |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
622 "If pytz is not installed, value must be integer number\n" \ |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
623 "giving local timezone offset from UTC in hours." |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
624 |
|
5754
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
625 # fix issue2551030, default value for timezone |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
626 # Must be 0 if no pytz can be UTC if pytz. |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
627 try: |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
628 import pytz |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
629 defaulttz = "UTC" |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
630 except ImportError: |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
631 defaulttz = "0" |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
632 |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
633 def str2value(self, value): |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
634 try: |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
635 roundup.date.get_timezone(value) |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
636 except KeyError: |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
637 raise OptionValueError(self, value, |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
638 "Timezone name or numeric hour offset required") |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
639 return value |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
640 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
641 |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
642 class RegExpOption(Option): |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
643 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
644 """Regular Expression option (value is Regular Expression Object)""" |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
645 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
646 class_description = "Value is Python Regular Expression (UTF8-encoded)." |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
647 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
648 RE_TYPE = type(re.compile("")) |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
649 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
650 def __init__(self, config, section, setting, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
651 default=NODEFAULT, description=None, aliases=None, |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
652 flags=0): |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
653 self.flags = flags |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
654 Option.__init__(self, config, section, setting, default, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
655 description, aliases) |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
656 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
657 def _value2str(self, value): |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
658 assert isinstance(value, self.RE_TYPE) |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
659 return value.pattern |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
660 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
661 def str2value(self, value): |
|
5416
56c9bcdea47f
Python 3 preparation: unicode.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5395
diff
changeset
|
662 if not isinstance(value, type(u'')): |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
663 value = str(value) |
|
5416
56c9bcdea47f
Python 3 preparation: unicode.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5395
diff
changeset
|
664 if not isinstance(value, type(u'')): |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
665 # if it is 7-bit ascii, use it as string, |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
666 # otherwise convert to unicode. |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
667 try: |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
668 value.decode("ascii") |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
669 except UnicodeError: |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
670 value = value.decode("utf-8") |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
671 return re.compile(value, self.flags) |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
672 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
673 ### Main configuration layout. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
674 # Config is described as a sequence of sections, |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
675 # where each section name is followed by a sequence |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
676 # of Option definitions. Each Option definition |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
677 # is a sequence containing class name and constructor |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
678 # parameters, starting from the setting name: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
679 # setting, default, [description, [aliases]] |
|
2627
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
680 # Note: aliases should only exist in historical options for backwards |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
681 # compatibility - new options should *not* have aliases! |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
682 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
683 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
684 SETTINGS = ( |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
685 ("main", ( |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
686 (FilePathOption, "database", "db", "Database directory path."), |
|
4587
a2eb4fb3e6d8
New Chameleon templating engine, engine is now configurable.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4570
diff
changeset
|
687 (Option, "template_engine", "zopetal", |
|
a2eb4fb3e6d8
New Chameleon templating engine, engine is now configurable.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4570
diff
changeset
|
688 "Templating engine to use.\n" |
|
a2eb4fb3e6d8
New Chameleon templating engine, engine is now configurable.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4570
diff
changeset
|
689 "Possible values are 'zopetal' for the old TAL engine\n" |
|
4714
ef7ae277a3b1
Typo fixed: Chamaleon -> Chameleon
Bernhard Reiter <bernhard@intevation.de>
parents:
4587
diff
changeset
|
690 "ported from Zope, or 'chameleon' for Chameleon."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
691 (FilePathOption, "templates", "html", |
|
2863
ae2907da636d
added STATIC_FILES option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2850
diff
changeset
|
692 "Path to the HTML templates directory."), |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
693 (MultiFilePathOption, "static_files", "", |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
694 "A list of space separated directory paths (or a single\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
695 "directory). These directories hold additional static\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
696 "files available via Web UI. These directories may\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
697 "contain sitewide images, CSS stylesheets etc. If a '-'\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
698 "is included, the list processing ends and the TEMPLATES\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
699 "directory is not searched after the specified\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
700 "directories. If this option is not set, all static\n" |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
701 "files are taken from the TEMPLATES directory."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
702 (MailAddressOption, "admin_email", "roundup-admin", |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
703 "Email address that roundup will complain to if it runs\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
704 "into trouble.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
705 "If no domain is specified then the config item\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
706 "mail -> domain is added."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
707 (MailAddressOption, "dispatcher_email", "roundup-admin", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
708 "The 'dispatcher' is a role that can get notified\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
709 "of new items to the database.\n" |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
710 "It is used by the ERROR_MESSAGES_TO config setting.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
711 "If no domain is specified then the config item\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
712 "mail -> domain is added."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
713 (Option, "email_from_tag", "", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
714 "Additional text to include in the \"name\" part\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
715 "of the From: address used in nosy messages.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
716 "If the sending user is \"Foo Bar\", the From: line\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
717 "is usually: \"Foo Bar\" <issue_tracker@tracker.example>\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
718 "the EMAIL_FROM_TAG goes inside the \"Foo Bar\" quotes like so:\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
719 "\"Foo Bar EMAIL_FROM_TAG\" <issue_tracker@tracker.example>"), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
720 (Option, "new_web_user_roles", "User", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
721 "Roles that a user gets when they register" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
722 " with Web User Interface.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
723 "This is a comma-separated string of role names" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
724 " (e.g. 'Admin,User')."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
725 (Option, "new_email_user_roles", "User", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
726 "Roles that a user gets when they register" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
727 " with Email Gateway.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
728 "This is a comma-separated string of role names" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
729 " (e.g. 'Admin,User')."), |
|
5315
5a014410f254
Fix issue2550954: History display breaks
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5305
diff
changeset
|
730 (Option, "obsolete_history_roles", "Admin", |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
731 "On schema changes, properties or classes in the history may\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
732 "become obsolete. Since normal access permissions do not apply\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
733 "(we don't know if a user should see such a property or class)\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
734 "a list of roles is specified here that are allowed to see\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
735 "these obsolete properties in the history. By default only the\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
736 "admin role may see these history entries, you can make them\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
737 "visible to all users by adding, e.g., the 'User' role here."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
738 (Option, "error_messages_to", "user", |
|
6211
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
739 'Send error message emails to the "dispatcher", "user", ' |
|
6355
ac5a6ffa377b
Description update. Description was a question not a statement.
John Rouillard <rouilj@ieee.org>
parents:
6354
diff
changeset
|
740 'or "both" (these are the three allowed values).\n' |
|
6211
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
741 'The dispatcher is configured using the DISPATCHER_EMAIL' |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
742 ' setting.'), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
743 (Option, "html_version", "html4", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
744 "HTML version to generate. The templates are html4 by default.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
745 "If you wish to make them xhtml, then you'll need to change this\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
746 "var to 'xhtml' too so all auto-generated HTML is compliant.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
747 "Allowed values: html4, xhtml"), |
|
5754
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
748 (TimezoneOption, "timezone", TimezoneOption.defaulttz, |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
749 "Default timezone offset," |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
750 " applied when user's timezone is not set.", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
751 ["DEFAULT_TIMEZONE"]), |
|
2649
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2646
diff
changeset
|
752 (BooleanOption, "instant_registration", "no", |
|
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2646
diff
changeset
|
753 "Register new users instantly, or require confirmation via\n" |
|
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2646
diff
changeset
|
754 "email?"), |
|
3469
d3b02352484f
enable registration confirmation by web only [SF#1381675]
Richard Jones <richard@users.sourceforge.net>
parents:
3452
diff
changeset
|
755 (BooleanOption, "email_registration_confirmation", "yes", |
|
d3b02352484f
enable registration confirmation by web only [SF#1381675]
Richard Jones <richard@users.sourceforge.net>
parents:
3452
diff
changeset
|
756 "Offer registration confirmation by email or only through the web?"), |
| 6358 | 757 (IndexerOption, "indexer", "", |
|
5096
e74c3611b138
- issue2550636, issue2550909: Added support for Whoosh indexer.
John Rouillard <rouilj@ieee.org>
parents:
5045
diff
changeset
|
758 "Force Roundup to use a particular text indexer.\n" |
|
e74c3611b138
- issue2550636, issue2550909: Added support for Whoosh indexer.
John Rouillard <rouilj@ieee.org>
parents:
5045
diff
changeset
|
759 "If no indexer is supplied, the first available indexer\n" |
|
e74c3611b138
- issue2550636, issue2550909: Added support for Whoosh indexer.
John Rouillard <rouilj@ieee.org>
parents:
5045
diff
changeset
|
760 "will be used in the following order:\n" |
|
e74c3611b138
- issue2550636, issue2550909: Added support for Whoosh indexer.
John Rouillard <rouilj@ieee.org>
parents:
5045
diff
changeset
|
761 "Possible values: xapian, whoosh, native (internal)."), |
|
6353
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
762 (Option, "indexer_language", "english", |
|
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
763 "Used to determine what language should be used by the\n" |
|
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
764 "indexer above. Currently only affects Xapian indexer. It\n" |
|
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
765 "sets the language for the stemmer.\n" |
|
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
766 "Possible values: must be a valid language for the indexer,\n" |
|
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
767 "see indexer documentation for details."), |
|
3544
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
768 (WordListOption, "indexer_stopwords", "", |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
769 "Additional stop-words for the full-text indexer specific to\n" |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
770 "your tracker. See the indexer source for the default list of\n" |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
771 "stop-words (eg. A,AND,ARE,AS,AT,BE,BUT,BY, ...)"), |
|
5736
1b5bcc5d745f
Change umask default to python 3 (put python2 compatible) format with
John Rouillard <rouilj@ieee.org>
parents:
5732
diff
changeset
|
772 (OctalNumberOption, "umask", "0o002", |
|
3609
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
773 "Defines the file creation mode mask."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
774 (IntegerNumberGeqZeroOption, 'csv_field_size', '131072', |
|
4255
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
775 "Maximum size of a csv-field during import. Roundups export\n" |
|
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
776 "format is a csv (comma separated values) variant. The csv\n" |
|
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
777 "reader has a limit on the size of individual fields\n" |
|
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
778 "starting with python 2.5. Set this to a higher value if you\n" |
|
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
779 "get the error 'Error: field larger than field limit' during\n" |
|
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
780 "import."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
781 (IntegerNumberGeqZeroOption, 'password_pbkdf2_default_rounds', '10000', |
|
4486
693c75d56ebe
Add new config-option 'password_pbkdf2_default_rounds'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4484
diff
changeset
|
782 "Sets the default number of rounds used when encoding passwords\n" |
|
693c75d56ebe
Add new config-option 'password_pbkdf2_default_rounds'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4484
diff
changeset
|
783 "using the PBKDF2 scheme. Set this to a higher value on faster\n" |
|
4488
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
784 "systems which want more security.\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
785 "PBKDF2 (Password-Based Key Derivation Function) is a\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
786 "password hashing mechanism that derives hash from the\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
787 "password and a random salt. For authentication this process\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
788 "is repeated with the same salt as in the stored hash.\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
789 "If both hashes match, the authentication succeeds.\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
790 "PBKDF2 supports a variable 'rounds' parameter which varies\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
791 "the time-cost of calculating the hash - doubling the number\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
792 "of rounds doubles the cpu time required to calculate it. The\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
793 "purpose of this is to periodically adjust the rounds as CPUs\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
794 "become faster. The currently enforced minimum number of\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
795 "rounds is 1000.\n" |
|
d483a40e2f82
more verbose description of password hashing, thanks to Eli Collins
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4486
diff
changeset
|
796 "See: http://en.wikipedia.org/wiki/PBKDF2 and RFC2898"), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
797 )), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
798 ("tracker", ( |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
799 (Option, "name", "Roundup issue tracker", |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
800 "A descriptive name for your roundup instance."), |
|
5770
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
801 (WebUrlOption, "web", NODEFAULT, |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
802 "The web address that the tracker is viewable at.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
803 "This will be included in information" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
804 " sent to users of the tracker.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
805 "The URL MUST include the cgi-bin part or anything else\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
806 "that is required to get to the home page of the tracker.\n" |
|
5770
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
807 "URL MUST start with http/https scheme and end with '/'"), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
808 (MailAddressOption, "email", "issue_tracker", |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
809 "Email address that mail to roundup should go to.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
810 "If no domain is specified then mail_domain is added."), |
|
5098
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
811 (Option, "replyto_address", "", |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
812 "Controls the reply-to header address used when sending\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
813 "nosy messages.\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
814 "If the value is unset (default) the roundup tracker's\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
815 "email address (above) is used.\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
816 "If set to \"AUTHOR\" then the primary email address of the\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
817 "author of the change will be used as the reply-to\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
818 "address. This allows email exchanges to occur outside of\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
819 "the view of roundup and exposes the address of the person\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
820 "who updated the issue, but it could be useful in some\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
821 "unusual circumstances.\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
822 "If set to some other value, the value is used as the reply-to\n" |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
823 "address. It must be a valid RFC2822 address or people will not\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
824 "be able to reply."), |
|
2922
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
825 (NullableOption, "language", "", |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
826 "Default locale name for this tracker.\n" |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
827 "If this option is not set, the language is determined\n" |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
828 "by OS environment variable LANGUAGE, LC_ALL, LC_MESSAGES,\n" |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
829 "or LANG, in that order of preference."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
830 )), |
|
3356
2913b42c0810
enabled disabling of REMOTE_USER for when it's not a valid username
Richard Jones <richard@users.sourceforge.net>
parents:
3155
diff
changeset
|
831 ("web", ( |
|
4088
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
832 (BooleanOption, "allow_html_file", "no", |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
833 "Setting this option enables Roundup to serve uploaded HTML\n" |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
834 "file content *as HTML*. This is a potential security risk\n" |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
835 "and is therefore disabled by default. Set to 'yes' if you\n" |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
836 "trust *all* users uploading content to your tracker."), |
|
3452
be505af06586
web_http_auth is boolean value
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3431
diff
changeset
|
837 (BooleanOption, 'http_auth', "yes", |
|
3356
2913b42c0810
enabled disabling of REMOTE_USER for when it's not a valid username
Richard Jones <richard@users.sourceforge.net>
parents:
3155
diff
changeset
|
838 "Whether to use HTTP Basic Authentication, if present.\n" |
|
6436
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
839 "Roundup will use either the REMOTE_USER (the value set \n" |
|
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
840 "by http_auth_header) or HTTP_AUTHORIZATION\n" |
|
3356
2913b42c0810
enabled disabling of REMOTE_USER for when it's not a valid username
Richard Jones <richard@users.sourceforge.net>
parents:
3155
diff
changeset
|
841 "variables supplied by your web server (in that order).\n" |
|
2913b42c0810
enabled disabling of REMOTE_USER for when it's not a valid username
Richard Jones <richard@users.sourceforge.net>
parents:
3155
diff
changeset
|
842 "Set this option to 'no' if you do not wish to use HTTP Basic\n" |
|
2913b42c0810
enabled disabling of REMOTE_USER for when it's not a valid username
Richard Jones <richard@users.sourceforge.net>
parents:
3155
diff
changeset
|
843 "Authentication in your web interface."), |
|
6436
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
844 (Option, "http_auth_header", "", |
|
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
845 "The HTTP header that holds the user authentication information.\n" |
|
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
846 "If empty (default) the REMOTE_USER header is used.\n" |
|
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
847 "This is used when the upstream HTTP server authenticates\n" |
|
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
848 "the user and passes the username using this HTTP header."), |
|
6053
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
849 (BooleanOption, 'http_auth_convert_realm_to_lowercase', "no", |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
850 "If usernames consist of a name and a domain/realm part of\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
851 "the form user@realm and we're using REMOTE_USER for\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
852 "authentication (e.g. via Kerberos), convert the realm part\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
853 "of the incoming REMOTE_USER to lowercase before matching\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
854 "against the roundup username. This allows roundup usernames\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
855 "to be lowercase (including the realm) and still follow the\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
856 "Kerberos convention of using an uppercase realm. In\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
857 "addition this is compatible with Active Directory which\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
858 "stores the username with realm as UserPrincipalName in\n" |
|
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
859 "lowercase."), |
|
6211
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
860 (BooleanOption, 'cookie_takes_precedence', "no", |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
861 "If the http_auth option is in effect (see above)\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
862 "we're accepting a REMOTE_USER variable resulting from\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
863 "an authentication mechanism implemented in the web-server,\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
864 "e.g., Kerberos login or similar. To override the mechanism\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
865 "provided by the web-server (e.g. for enabling sub-login as\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
866 "another user) we tell roundup that the cookie takes\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
867 "precedence over a REMOTE_USER or HTTP_AUTHORIZATION\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
868 "variable. So if both, a cookie and a REMOTE_USER is\n" |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
869 "present, the cookie wins.\n"), |
|
5772
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
870 (IntegerNumberGeqZeroOption, 'login_attempts_min', "3", |
|
5717
cad18de2b988
issue2550949: Rate limit password guesses/login attempts.
John Rouillard <rouilj@ieee.org>
parents:
5698
diff
changeset
|
871 "Limit login attempts per user per minute to this number.\n" |
|
cad18de2b988
issue2550949: Rate limit password guesses/login attempts.
John Rouillard <rouilj@ieee.org>
parents:
5698
diff
changeset
|
872 "By default the 4th login attempt in a minute will notify\n" |
|
cad18de2b988
issue2550949: Rate limit password guesses/login attempts.
John Rouillard <rouilj@ieee.org>
parents:
5698
diff
changeset
|
873 "the user that they need to wait 20 seconds before trying to\n" |
|
cad18de2b988
issue2550949: Rate limit password guesses/login attempts.
John Rouillard <rouilj@ieee.org>
parents:
5698
diff
changeset
|
874 "log in again. This limits password guessing attacks and\n" |
|
5772
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
875 "shouldn't need to be changed. Rate limiting on login can\n" |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
876 "be disabled by setting the value to 0."), |
|
5974
98a8509ce45c
issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
5956
diff
changeset
|
877 (IntegerNumberGeqZeroOption, 'registration_delay', "4", |
|
98a8509ce45c
issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
5956
diff
changeset
|
878 "The number of seconds needed to complete the new user\n" |
|
98a8509ce45c
issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
5956
diff
changeset
|
879 "registration form. This limits the rate at which bots\n" |
|
98a8509ce45c
issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
5956
diff
changeset
|
880 "can attempt to sign up. Limit can be disabled by setting\n" |
|
98a8509ce45c
issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
5956
diff
changeset
|
881 "the value to 0."), |
|
5976
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
882 (BooleanOption, 'registration_prevalidate_username', "no", |
|
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
883 "When registering a user, check that the username\n" |
|
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
884 "is available before sending confirmation email.\n" |
|
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
885 "Usually a username conflict is detected when\n" |
|
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
886 "confirming the registration. Disabled by default as\n" |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
887 "it can be used for guessing existing usernames.\n"), |
|
5212
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
888 (SameSiteSettingOption, 'samesite_cookie_setting', "Lax", |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
889 """Set the mode of the SameSite cookie option for |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
890 the session cookie. Choices are 'Lax' or |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
891 'Strict'. 'None' can be used to suppress the |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
892 option. Strict mode provides additional security |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
893 against CSRF attacks, but may confuse users who |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
894 are logged into roundup and open a roundup link |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
895 from a source other than roundup (e.g. link in |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
896 email)."""), |
|
5603
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
897 (BooleanOption, 'enable_xmlrpc', "yes", |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
898 """Whether to enable the XMLRPC API in the roundup web |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
899 interface. By default the XMLRPC endpoint is the string 'xmlrpc' |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
900 after the roundup web url configured in the 'tracker' section. |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
901 If this variable is set to 'no', the xmlrpc path has no special meaning |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
902 and will yield an error message."""), |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
903 (BooleanOption, 'enable_rest', "yes", |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
904 """Whether to enable the REST API in the roundup web |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
905 interface. By default the REST endpoint is the string 'rest' plus any |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
906 additional REST-API parameters after the roundup web url configured in |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
907 the tracker section. If this variable is set to 'no', the rest path has |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
908 no special meaning and will yield an error message."""), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
909 (IntegerNumberGeqZeroOption, 'api_calls_per_interval', "0", |
|
5732
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
910 "Limit API calls per api_interval_in_sec seconds to\n" |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
911 "this number.\n" |
|
5732
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
912 "Determines the burst rate and the rate that new api\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
913 "calls will be made available. If set to 360 and\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
914 "api_intervals_in_sec is set to 3600, the 361st call in\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
915 "10 seconds results in a 429 error to the caller. It\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
916 "tells them to wait 10 seconds (360/3600) before making\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
917 "another api request. A value of 0 turns off rate\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
918 "limiting in the API. Tune this as needed. See rest\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
919 "documentation for more info.\n"), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
920 (IntegerNumberGeqZeroOption, 'api_interval_in_sec', "3600", |
|
5732
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
921 "Defines the interval in seconds over which an api client can\n" |
|
0e6ed3d72f92
Rest rate limiting code first commit. It is a bit rough and turned off
John Rouillard <rouilj@ieee.org>
parents:
5726
diff
changeset
|
922 "make api_calls_per_interval api calls. Tune this as needed.\n"), |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
923 (CsrfSettingOption, 'csrf_enforce_token', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
924 """How do we deal with @csrf fields in posted forms. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
925 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
926 the user if the field is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
927 Set this to 'yes' to block the post and notify the user |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
928 if the token is invalid, but accept the form if |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
929 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
930 Set this to 'logfailure' to log a notice to the roundup |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
931 log if the field is invalid or missing, but accept |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
932 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
933 Set this to 'no' to ignore the field and accept the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
934 """), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
935 (IntegerNumberGeqZeroOption, 'csrf_token_lifetime', "20160", |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
936 """csrf_tokens have a limited lifetime. If they are not |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
937 used they are purged from the database after this |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
938 number of minutes. Default (20160) is 2 weeks."""), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
939 (CsrfSettingOption, 'csrf_enforce_token', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
940 """How do we deal with @csrf fields in posted forms. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
941 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
942 the user if the field is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
943 Set this to 'yes' to block the post and notify the user |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
944 if the token is invalid, but accept the form if |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
945 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
946 Set this to 'logfailure' to log a notice to the roundup |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
947 log if the field is invalid or missing, but accept |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
948 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
949 Set this to 'no' to ignore the field and accept the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
950 """), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
951 (CsrfSettingOption, 'csrf_enforce_header_X-REQUESTED-WITH', "yes", |
|
5698
c7dd1cae3416
Update rest.txt example to include headers required for CSRF
John Rouillard <rouilj@ieee.org>
parents:
5603
diff
changeset
|
952 """This is only used for xmlrpc and rest requests. This test is |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
953 done after Origin and Referer headers are checked. It only |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
954 verifies that the X-Requested-With header exists. The value |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
955 is ignored. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
956 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
957 the user if the header is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
958 Set this to 'yes' is the same as required. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
959 Set this to 'logfailure' is the same as 'no'. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
960 Set this to 'no' to ignore the header and accept the post."""), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
961 (CsrfSettingOption, 'csrf_enforce_header_referer', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
962 """Verify that the Referer http header matches the |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
963 tracker.web setting in config.ini. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
964 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
965 the user if the header is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
966 Set this to 'yes' to block the post and notify the user |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
967 if the header is invalid, but accept the form if |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
968 the field is missing. |
|
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
969 Set this to 'logfailure' to log a notice to the roundup |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
970 log if the header is invalid or missing, but accept |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
971 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
972 Set this to 'no' to ignore the header and accept the post."""), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
973 (CsrfSettingOption, 'csrf_enforce_header_origin', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
974 """Verify that the Origin http header matches the |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
975 tracker.web setting in config.ini. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
976 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
977 the user if the header is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
978 Set this to 'yes' to block the post and notify the user |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
979 if the header is invalid, but accept the form if |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
980 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
981 Set this to 'logfailure' to log a notice to the roundup |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
982 log if the header is invalid or missing, but accept |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
983 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
984 Set this to 'no' to ignore the header and accept the post."""), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
985 (CsrfSettingOption, 'csrf_enforce_header_x-forwarded-host', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
986 """Verify that the X-Forwarded-Host http header matches |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
987 the host part of the tracker.web setting in config.ini. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
988 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
989 the user if the header is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
990 Set this to 'yes' to block the post and notify the user |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
991 if the header is invalid, but accept the form if |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
992 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
993 Set this to 'logfailure' to log a notice to the roundup |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
994 log if the header is invalid or missing, but accept |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
995 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
996 Set this to 'no' to ignore the header and accept the post."""), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
997 (CsrfSettingOption, 'csrf_enforce_header_host', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
998 """"If there is no X-Forward-Host header, verify that |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
999 the Host http header matches the host part of the |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1000 tracker.web setting in config.ini. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1001 Set this to 'required' to block the post and notify |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1002 the user if the header is missing or invalid. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1003 Set this to 'yes' to block the post and notify the user |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1004 if the header is invalid, but accept the form if |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
1005 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1006 Set this to 'logfailure' to log a notice to the roundup |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1007 log if the header is invalid or missing, but accept |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1008 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1009 Set this to 'no' to ignore the header and accept the post."""), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1010 (IntegerNumberGeqZeroOption, 'csrf_header_min_count', "1", |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1011 """Minimum number of header checks that must pass |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1012 to accept the request. Set to 0 to accept post |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1013 even if no header checks pass. Usually the Host header check |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1014 always passes, so setting it less than 1 is not recommended."""), |
|
3425
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1015 (BooleanOption, 'use_browser_language', "yes", |
|
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1016 "Whether to use HTTP Accept-Language, if present.\n" |
|
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1017 "Browsers send a language-region preference list.\n" |
|
3548
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
1018 "It's usually set in the client's browser or in their\n" |
|
3425
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1019 "Operating System.\n" |
|
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1020 "Set this option to 'no' if you want to ignore it."), |
|
3548
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
1021 (BooleanOption, "debug", "no", |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
1022 "Setting this option makes Roundup display error tracebacks\n" |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
1023 "in the user's browser rather than emailing them to the\n" |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
1024 "tracker admin."), |
|
4484
52e13bf0bb40
Add new config-option 'migrate_passwords' in section 'web'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4474
diff
changeset
|
1025 (BooleanOption, "migrate_passwords", "yes", |
|
52e13bf0bb40
Add new config-option 'migrate_passwords' in section 'web'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4474
diff
changeset
|
1026 "Setting this option makes Roundup migrate passwords with\n" |
|
52e13bf0bb40
Add new config-option 'migrate_passwords' in section 'web'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4474
diff
changeset
|
1027 "an insecure password-scheme to a more secure scheme\n" |
|
52e13bf0bb40
Add new config-option 'migrate_passwords' in section 'web'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4474
diff
changeset
|
1028 "when the user logs in via the web-interface."), |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1029 (MandatoryOption, "secret_key", create_token(), |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1030 "A per tracker secret used in etag calculations for\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1031 "an object. It must not be empty.\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1032 "It prevents reverse engineering hidden data in an object\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1033 "by calculating the etag for a sample object. Then modifying\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1034 "hidden properties until the sample object's etag matches\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1035 "the one returned by roundup.\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1036 "Changing this changes the etag and invalidates updates by\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1037 "clients. It must be persistent across application restarts.\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1038 "(Note the default value changes every time\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1039 " roundup-admin updateconfig\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1040 "is run, so it must be explicitly set to a non-empty string.\n"), |
|
5878
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1041 (MandatoryOption, "jwt_secret", "disabled", |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1042 "This is used to generate/validate json web tokens (jwt).\n" |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1043 "Even if you don't use jwts it must not be empty.\n" |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1044 "If less than 256 bits (32 characters) in length it will\n" |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1045 "disable use of jwt. Changing this invalidates all jwts\n" |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1046 "issued by the roundup instance requiring *all* users to\n" |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1047 "generate new jwts. This is experimental and disabled by\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1048 "default. It must be persistent across application restarts.\n"), |
|
3356
2913b42c0810
enabled disabling of REMOTE_USER for when it's not a valid username
Richard Jones <richard@users.sourceforge.net>
parents:
3155
diff
changeset
|
1049 )), |
|
2634
f47ca4541770
Both RDBMS backends now use the same config.ini section, [rdbms].
Richard Jones <richard@users.sourceforge.net>
parents:
2630
diff
changeset
|
1050 ("rdbms", ( |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
1051 (DatabaseBackend, 'backend', NODEFAULT, |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
1052 "Database backend."), |
|
2634
f47ca4541770
Both RDBMS backends now use the same config.ini section, [rdbms].
Richard Jones <richard@users.sourceforge.net>
parents:
2630
diff
changeset
|
1053 (Option, 'name', 'roundup', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1054 "Name of the database to use.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1055 ['MYSQL_DBNAME']), |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2636
diff
changeset
|
1056 (NullableOption, 'host', 'localhost', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1057 "Database server host.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1058 ['MYSQL_DBHOST']), |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1059 (NullableOption, 'port', '', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1060 "TCP port number of the database server.\n" |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1061 "Postgresql usually resides on port 5432 (if any),\n" |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1062 "for MySQL default port number is 3306.\n" |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1063 "Leave this option empty to use backend default"), |
|
2637
11811b313459
The demo.py script works again using the new configuration system.
Richard Jones <richard@users.sourceforge.net>
parents:
2636
diff
changeset
|
1064 (NullableOption, 'user', 'roundup', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1065 "Database user name that Roundup should use.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1066 ['MYSQL_DBUSER']), |
|
2634
f47ca4541770
Both RDBMS backends now use the same config.ini section, [rdbms].
Richard Jones <richard@users.sourceforge.net>
parents:
2630
diff
changeset
|
1067 (NullableOption, 'password', 'roundup', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1068 "Database user password.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1069 ['MYSQL_DBPASSWORD']), |
|
3099
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1070 (NullableOption, 'read_default_file', '~/.my.cnf', |
|
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1071 "Name of the MySQL defaults file.\n" |
|
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1072 "Only used in MySQL connections."), |
|
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1073 (NullableOption, 'read_default_group', 'roundup', |
|
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1074 "Name of the group to use in the MySQL defaults file (.my.cnf).\n" |
|
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1075 "Only used in MySQL connections."), |
|
6333
bd84f43e1d13
Fixes to mysql 2.0 conversion doc issue2551115 Werner Hunger
John Rouillard <rouilj@ieee.org>
parents:
6332
diff
changeset
|
1076 (Option, 'mysql_charset', 'utf8mb4', |
|
6152
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1077 "Charset to use for mysql connection,\n" |
|
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1078 "use 'default' for the mysql default, no charset option\n" |
|
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1079 "is used when creating the connection in that case.\n" |
|
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1080 "Otherwise any permissible mysql charset is allowed here.\n" |
|
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1081 "Only used in MySQL connections."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1082 (IntegerNumberGeqZeroOption, 'sqlite_timeout', '30', |
|
4415
3e35233ea93c
new rdbms config item sqlite_timeout...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4411
diff
changeset
|
1083 "Number of seconds to wait when the SQLite database is locked\n" |
|
3e35233ea93c
new rdbms config item sqlite_timeout...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4411
diff
changeset
|
1084 "Default: use a 30 second timeout (extraordinarily generous)\n" |
|
3e35233ea93c
new rdbms config item sqlite_timeout...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4411
diff
changeset
|
1085 "Only used in SQLite connections."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1086 (IntegerNumberGeqZeroOption, 'cache_size', '100', |
|
4074
e039f3cbbb96
Make RDBMS cache-size configurable.
Stefan Seefeld <stefan@seefeld.name>
parents:
4013
diff
changeset
|
1087 "Size of the node cache (in elements)"), |
|
4474
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1088 (BooleanOption, "allow_create", "yes", |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1089 "Setting this option to 'no' protects the database against table creations."), |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1090 (BooleanOption, "allow_alter", "yes", |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1091 "Setting this option to 'no' protects the database against table alterations."), |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1092 (BooleanOption, "allow_drop", "yes", |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1093 "Setting this option to 'no' protects the database against table drops."), |
|
4471
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1094 (NullableOption, 'template', '', |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1095 "Name of the PostgreSQL template for database creation.\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1096 "For database creation the template used has to match\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1097 "the character encoding used (UTF8), there are different\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1098 "PostgreSQL installations using different templates with\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1099 "different encodings. If you get an error:\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1100 " new encoding (UTF8) is incompatible with the encoding of\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1101 " the template database (SQL_ASCII)\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1102 " HINT: Use the same encoding as in the template database,\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1103 " or use template0 as template.\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1104 "then set this option to the template name given in the\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1105 "error message."), |
|
4887
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1106 (IsolationOption, 'isolation_level', 'read committed', |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1107 "Database isolation level, currently supported for\n" |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1108 "PostgreSQL and mysql. See, e.g.,\n" |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1109 "http://www.postgresql.org/docs/9.1/static/transaction-iso.html"), |
|
6332
6a6b4651be1f
Use server-side cursor for postgres in some cases
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6300
diff
changeset
|
1110 (BooleanOption, "serverside_cursor", "yes", |
|
6a6b4651be1f
Use server-side cursor for postgres in some cases
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6300
diff
changeset
|
1111 "Set the database cursor for filter queries to serverside\n" |
|
6a6b4651be1f
Use server-side cursor for postgres in some cases
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6300
diff
changeset
|
1112 "cursor, this avoids caching large amounts of data in the\n" |
|
6a6b4651be1f
Use server-side cursor for postgres in some cases
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6300
diff
changeset
|
1113 "client. This option only applies for the postgresql backend."), |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
1114 ), "Settings in this section (except for backend) are used" |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
1115 " by RDBMS backends only." |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1116 ), |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1117 ("logging", ( |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1118 (FilePathOption, "config", "", |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1119 "Path to configuration file for standard Python logging module.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1120 "If this option is set, logging configuration is loaded\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1121 "from specified file; options 'filename' and 'level'\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1122 "in this section are ignored."), |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1123 (FilePathOption, "filename", "", |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1124 "Log file name for minimal logging facility built into Roundup.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1125 "If no file name specified, log messages are written on stderr.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1126 "If above 'config' option is set, this option has no effect."), |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1127 (Option, "level", "ERROR", |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1128 "Minimal severity level of messages written to log file.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1129 "If above 'config' option is set, this option has no effect.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1130 "Allowed values: DEBUG, INFO, WARNING, ERROR"), |
|
5939
94c415c7cd36
Make gunicorn --access-logfile work with custom logging config
John Rouillard <rouilj@ieee.org>
parents:
5878
diff
changeset
|
1131 (BooleanOption, "disable_loggers", "no", |
|
94c415c7cd36
Make gunicorn --access-logfile work with custom logging config
John Rouillard <rouilj@ieee.org>
parents:
5878
diff
changeset
|
1132 "If set to yes, only the loggers configured in this section will\n" |
| 5956 | 1133 "be used. Yes will disable gunicorn's --access-logfile.\n"), |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1134 )), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1135 ("mail", ( |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1136 (Option, "domain", NODEFAULT, |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1137 "The email domain that admin_email, issue_tracker and\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1138 "dispatcher_email belong to.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1139 "This domain is added to those config items if they don't\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1140 "explicitly include a domain.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1141 "Do not include the '@' symbol."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1142 (Option, "host", NODEFAULT, |
|
2844
5dddfc64816d
mailgw backward-compatibility: "MAILHOST" alias for "MAIL_HOST"
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2839
diff
changeset
|
1143 "SMTP mail host that roundup will use to send mail", |
|
5dddfc64816d
mailgw backward-compatibility: "MAILHOST" alias for "MAIL_HOST"
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2839
diff
changeset
|
1144 ["MAILHOST"],), |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1145 (Option, "username", "", "SMTP login name.\n" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
1146 "Set this if your mail host requires authenticated access.\n" |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
1147 "If username is not empty, password (below) MUST be set!"), |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1148 (Option, "password", NODEFAULT, "SMTP login password.\n" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
1149 "Set this if your mail host requires authenticated access."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1150 (IntegerNumberGeqZeroOption, "port", smtplib.SMTP_PORT, |
|
3878
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3877
diff
changeset
|
1151 "Default port to send SMTP on.\n" |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3877
diff
changeset
|
1152 "Set this if your mail server runs on a different port."), |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3877
diff
changeset
|
1153 (NullableOption, "local_hostname", '', |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3877
diff
changeset
|
1154 "The local hostname to use during SMTP transmission.\n" |
|
6d14a3b4e295
allow admin to specify port and local hostname for SMTP connections
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3877
diff
changeset
|
1155 "Set this if your mail server requires something specific."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1156 (BooleanOption, "tls", "no", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1157 "If your SMTP mail host provides or requires TLS\n" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1158 "(Transport Layer Security) then set this option to 'yes'."), |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
1159 (NullableFilePathOption, "tls_keyfile", "", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1160 "If TLS is used, you may set this option to the name\n" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1161 "of a PEM formatted file that contains your private key."), |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
1162 (NullableFilePathOption, "tls_certfile", "", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1163 "If TLS is used, you may set this option to the name\n" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1164 "of a PEM formatted certificate chain file."), |
|
2627
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1165 (Option, "charset", "utf-8", |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1166 "Character set to encode email headers with.\n" |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1167 "We use utf-8 by default, as it's the most flexible.\n" |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1168 "Some mail readers (eg. Eudora) can't cope with that,\n" |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1169 "so you might need to specify a more limited character set\n" |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1170 "(eg. iso-8859-1).", |
|
2627
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1171 ["EMAIL_CHARSET"]), |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1172 (FilePathOption, "debug", "", |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
1173 "Setting this option makes Roundup write all outgoing email\n" |
|
2627
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1174 "messages to this file *instead* of sending them.\n" |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1175 "This option has the same effect as environment variable" |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1176 " SENDMAILDEBUG.\nEnvironment variable takes precedence."), |
|
3877
83748b2de465
Make addition of line about new submission/comment at top of each message...
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3854
diff
changeset
|
1177 (BooleanOption, "add_authorinfo", "yes", |
|
83748b2de465
Make addition of line about new submission/comment at top of each message...
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3854
diff
changeset
|
1178 "Add a line with author information at top of all messages\n" |
|
83748b2de465
Make addition of line about new submission/comment at top of each message...
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3854
diff
changeset
|
1179 "sent by roundup"), |
|
83748b2de465
Make addition of line about new submission/comment at top of each message...
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3854
diff
changeset
|
1180 (BooleanOption, "add_authoremail", "yes", |
|
83748b2de465
Make addition of line about new submission/comment at top of each message...
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3854
diff
changeset
|
1181 "Add the mail address of the author to the author information at\n" |
|
3879
454ee9411e85
Fix truncated comment for add_authoremail option.
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3878
diff
changeset
|
1182 "the top of all messages.\n" |
|
454ee9411e85
Fix truncated comment for add_authoremail option.
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3878
diff
changeset
|
1183 "If this is false but add_authorinfo is true, only the name\n" |
|
454ee9411e85
Fix truncated comment for add_authoremail option.
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3878
diff
changeset
|
1184 "of the actor is added which protects the mail address of the\n" |
|
454ee9411e85
Fix truncated comment for add_authoremail option.
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3878
diff
changeset
|
1185 "actor from being exposed at mail archives, etc."), |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1186 ), "Outgoing email options.\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1187 "Used for nosy messages and approval requests"), |
|
2627
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1188 ("mailgw", ( |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1189 (EmailBodyOption, "keep_quoted_text", "yes", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1190 "Keep email citations when accepting messages.\n" |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1191 "Setting this to \"no\" strips out \"quoted\" text\n" |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1192 "from the message. Setting this to \"new\" keeps quoted\n" |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1193 "text only if a new issue is being created.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1194 "Signatures are also stripped.", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1195 ["EMAIL_KEEP_QUOTED_TEXT"]), |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1196 (EmailBodyOption, "leave_body_unchanged", "no", |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1197 "Setting this to \"yes\" preserves the email body\n" |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1198 "as is - that is, keep the citations _and_ signatures.\n" |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1199 "Setting this to \"new\" keeps the body only if we are\n" |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1200 "creating a new issue.", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1201 ["EMAIL_LEAVE_BODY_UNCHANGED"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1202 (Option, "default_class", "issue", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1203 "Default class to use in the mailgw\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1204 "if one isn't supplied in email subjects.\n" |
|
2627
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1205 "To disable, leave the value blank.", |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1206 ["MAIL_DEFAULT_CLASS"]), |
|
2922
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1207 (NullableOption, "language", "", |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1208 "Default locale name for the tracker mail gateway.\n" |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1209 "If this option is not set, mail gateway will use\n" |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1210 "the language of the tracker instance."), |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1211 (Option, "subject_prefix_parsing", "strict", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1212 "Controls the parsing of the [prefix] on subject\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1213 "lines in incoming emails. \"strict\" will return an\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1214 "error to the sender if the [prefix] is not recognised.\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1215 "\"loose\" will attempt to parse the [prefix] but just\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1216 "pass it through as part of the issue title if not\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1217 "recognised. \"none\" will always pass any [prefix]\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1218 "through as part of the issue title."), |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1219 (Option, "subject_suffix_parsing", "strict", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1220 "Controls the parsing of the [suffix] on subject\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1221 "lines in incoming emails. \"strict\" will return an\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1222 "error to the sender if the [suffix] is not recognised.\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1223 "\"loose\" will attempt to parse the [suffix] but just\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1224 "pass it through as part of the issue title if not\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1225 "recognised. \"none\" will always pass any [suffix]\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1226 "through as part of the issue title."), |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1227 (Option, "subject_suffix_delimiters", "[]", |
|
3725
65badf6ab7ad
fix config documentation
Richard Jones <richard@users.sourceforge.net>
parents:
3620
diff
changeset
|
1228 "Defines the brackets used for delimiting the prefix and \n" |
|
65badf6ab7ad
fix config documentation
Richard Jones <richard@users.sourceforge.net>
parents:
3620
diff
changeset
|
1229 'suffix in a subject line. The presence of "suffix" in\n' |
|
65badf6ab7ad
fix config documentation
Richard Jones <richard@users.sourceforge.net>
parents:
3620
diff
changeset
|
1230 "the config option name is a historical artifact and may\n" |
|
65badf6ab7ad
fix config documentation
Richard Jones <richard@users.sourceforge.net>
parents:
3620
diff
changeset
|
1231 "be ignored."), |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1232 (Option, "subject_content_match", "always", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1233 "Controls matching of the incoming email subject line\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1234 "against issue titles in the case where there is no\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1235 "designator [prefix]. \"never\" turns off matching.\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1236 "\"creation + interval\" or \"activity + interval\"\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1237 "will match an issue for the interval after the issue's\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1238 "creation or last activity. The interval is a standard\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1239 "Roundup interval."), |
|
4405
863ec554525c
new mailgw config option subject_updates_title...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4342
diff
changeset
|
1240 (BooleanOption, "subject_updates_title", "yes", |
|
863ec554525c
new mailgw config option subject_updates_title...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4342
diff
changeset
|
1241 "Update issue title if incoming subject of email is different.\n" |
|
863ec554525c
new mailgw config option subject_updates_title...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4342
diff
changeset
|
1242 "Setting this to \"no\" will ignore the title part of" |
|
863ec554525c
new mailgw config option subject_updates_title...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4342
diff
changeset
|
1243 " the subject\nof incoming email messages.\n"), |
| 5809 | 1244 (RegExpOption, "refwd_re", r"(\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+", |
|
3831
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1245 "Regular expression matching a single reply or forward\n" |
|
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1246 "prefix prepended by the mailer. This is explicitly\n" |
|
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1247 "stripped from the subject during parsing."), |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
1248 (RegExpOption, "origmsg_re", |
| 5809 | 1249 r"^[>|\s]*-----\s?Original Message\s?-----$", |
|
3831
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1250 "Regular expression matching start of an original message\n" |
|
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1251 "if quoted the in body."), |
| 5809 | 1252 (RegExpOption, "sign_re", r"^[>|\s]*-- ?$", |
|
3831
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1253 "Regular expression matching the start of a signature\n" |
|
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1254 "in the message body."), |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
1255 (RegExpOption, "eol_re", r"[\r\n]+", |
|
3831
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1256 "Regular expression matching end of line."), |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
1257 (RegExpOption, "blankline_re", r"[\r\n]+\s*[\r\n]+", |
|
3831
14ec78618bd5
Allow customisation of regular expressions used in email parsing...
Richard Jones <richard@users.sourceforge.net>
parents:
3820
diff
changeset
|
1258 "Regular expression matching a blank line."), |
|
4424
f1affb6b7a08
Mail gateway fixes and improvements.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4415
diff
changeset
|
1259 (BooleanOption, "unpack_rfc822", "no", |
|
f1affb6b7a08
Mail gateway fixes and improvements.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4415
diff
changeset
|
1260 "Unpack attached messages (encoded as message/rfc822 in MIME)\n" |
|
f1affb6b7a08
Mail gateway fixes and improvements.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4415
diff
changeset
|
1261 "as multiple parts attached as files to the issue, if not\n" |
|
f1affb6b7a08
Mail gateway fixes and improvements.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4415
diff
changeset
|
1262 "set we handle message/rfc822 attachments as a single file."), |
|
3945
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1263 (BooleanOption, "ignore_alternatives", "no", |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1264 "When parsing incoming mails, roundup uses the first\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1265 "text/plain part it finds. If this part is inside a\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1266 "multipart/alternative, and this option is set, all other\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1267 "parts of the multipart/alternative are ignored. The default\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1268 "is to keep all parts and attach them to the issue."), |
|
5305
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1269 (HtmlToTextOption, "convert_htmltotext", "none", |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1270 "If an email has only text/html parts, use this module\n" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1271 "to convert the html to text. Choose from beautifulsoup 4,\n" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1272 "dehtml - (internal code), or none to disable conversion.\n" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1273 "If 'none' is selected, email without a text/plain part\n" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1274 "will be returned to the user with a message. If\n" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1275 "beautifulsoup is selected but not installed dehtml will\n" |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1276 "be used instead."), |
|
5045
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1277 (BooleanOption, "keep_real_from", "no", |
|
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1278 "When handling emails ignore the Resent-From:-header\n" |
|
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1279 "and use the original senders From:-header instead.\n" |
|
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1280 "(This might be desirable in some situations where a moderator\n" |
|
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1281 "reads incoming messages first before bouncing them to Roundup)", |
|
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1282 ["EMAIL_KEEP_REAL_FROM"]), |
|
a46d5d0fd5f8
Fix issue1615201: Added a new configuration option EMAIL_KEEP_REAL_FROM
Peter Funk <pf@artcom-gmbh.de>
parents:
5041
diff
changeset
|
1283 ), "Roundup Mail Gateway options"), |
|
3915
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1284 ("pgp", ( |
|
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1285 (BooleanOption, "enable", "no", |
|
5494
b7fa56ced601
use gpg module instead of pyme module for PGP encryption
Christof Meerwald <cmeerw@cmeerw.org>
parents:
5424
diff
changeset
|
1286 "Enable PGP processing. Requires gpg. If you're planning\n" |
|
4541
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1287 "to send encrypted PGP mail to the tracker, you should also\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1288 "enable the encrypt-option below, otherwise mail received\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1289 "encrypted might be sent unencrypted to another user."), |
|
3922
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3915
diff
changeset
|
1290 (NullableOption, "roles", "", |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3915
diff
changeset
|
1291 "If specified, a comma-separated list of roles to perform\n" |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3915
diff
changeset
|
1292 "PGP processing on. If not specified, it happens for all\n" |
|
4541
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1293 "users. Note that received PGP messages (signed and/or\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1294 "encrypted) will be processed with PGP even if the user\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1295 "doesn't have one of the PGP roles, you can use this to make\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1296 "PGP processing completely optional by defining a role here\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1297 "and not assigning any users to that role."), |
|
3915
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1298 (NullableOption, "homedir", "", |
|
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1299 "Location of PGP directory. Defaults to $HOME/.gnupg if\n" |
|
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1300 "not specified."), |
|
4541
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1301 (BooleanOption, "encrypt", "no", |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1302 "Enable PGP encryption. All outgoing mails are encrypted.\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1303 "This requires that keys for all users (with one of the gpg\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1304 "roles above or all users if empty) are available. Note that\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1305 "it makes sense to educate users to also send mails encrypted\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1306 "to the tracker, to enforce this, set 'require_incoming'\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1307 "option below (but see the note)."), |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1308 (Option, "require_incoming", "signed", |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1309 "Require that pgp messages received by roundup are either\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1310 "'signed', 'encrypted' or 'both'. If encryption is required\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1311 "we do not return the message (in clear) to the user but just\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1312 "send an informational message that the message was rejected.\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1313 "Note that this still presents known-plaintext to an attacker\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1314 "when the users sends the mail a second time with encryption\n" |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1315 "turned on."), |
|
3915
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1316 ), "OpenPGP mail processing options"), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1317 ("nosy", ( |
|
4547
d9d7319afffa
Add config-option "nosy" to messages_to_author setting in [nosy] section...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4541
diff
changeset
|
1318 (Option, "messages_to_author", "no", |
|
d9d7319afffa
Add config-option "nosy" to messages_to_author setting in [nosy] section...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4541
diff
changeset
|
1319 "Send nosy messages to the author of the message.\n" |
|
d9d7319afffa
Add config-option "nosy" to messages_to_author setting in [nosy] section...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4541
diff
changeset
|
1320 "Allowed values: yes, no, new, nosy -- if yes, messages\n" |
|
d9d7319afffa
Add config-option "nosy" to messages_to_author setting in [nosy] section...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4541
diff
changeset
|
1321 "are sent to the author even if not on the nosy list, same\n" |
|
d9d7319afffa
Add config-option "nosy" to messages_to_author setting in [nosy] section...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4541
diff
changeset
|
1322 "for new (but only for new messages). When set to nosy,\n" |
|
d9d7319afffa
Add config-option "nosy" to messages_to_author setting in [nosy] section...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4541
diff
changeset
|
1323 "the nosy list controls sending messages to the author.", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1324 ["MESSAGES_TO_AUTHOR"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1325 (Option, "signature_position", "bottom", |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1326 "Where to place the email signature.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1327 "Allowed values: top, bottom, none", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1328 ["EMAIL_SIGNATURE_POSITION"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1329 (RunDetectorOption, "add_author", "new", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1330 "Does the author of a message get placed on the nosy list\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1331 "automatically? If 'new' is used, then the author will\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1332 "only be added when a message creates a new issue.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1333 "If 'yes', then the author will be added on followups too.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1334 "If 'no', they're never added to the nosy.\n", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1335 ["ADD_AUTHOR_TO_NOSY"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1336 (RunDetectorOption, "add_recipients", "new", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1337 "Do the recipients (To:, Cc:) of a message get placed on the\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1338 "nosy list? If 'new' is used, then the recipients will\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1339 "only be added when a message creates a new issue.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1340 "If 'yes', then the recipients will be added on followups too.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1341 "If 'no', they're never added to the nosy.\n", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1342 ["ADD_RECIPIENTS_TO_NOSY"]), |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1343 (Option, "email_sending", "single", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1344 "Controls the email sending from the nosy reactor. If\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1345 "\"multiple\" then a separate email is sent to each\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1346 "recipient. If \"single\" then a single email is sent with\n" |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1347 "each recipient as a CC address."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1348 (IntegerNumberGeqZeroOption, "max_attachment_size", sys.maxsize, |
|
3882
46ef2a6fd79d
config option to limit nosy attachments based on size
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3879
diff
changeset
|
1349 "Attachments larger than the given number of bytes\n" |
|
46ef2a6fd79d
config option to limit nosy attachments based on size
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3879
diff
changeset
|
1350 "won't be attached to nosy mails. They will be replaced by\n" |
|
46ef2a6fd79d
config option to limit nosy attachments based on size
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3879
diff
changeset
|
1351 "a link to the tracker's download page for the file.") |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1352 ), "Nosy messages sending"), |
|
6277
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1353 ("markdown", ( |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1354 (BooleanOption, "break_on_newline", "no", |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1355 "If yes/true, render single new line characters in markdown\n" |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1356 "text with <br>. Set true if you want GitHub Flavored Markdown\n" |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1357 "(GFM) handling of embedded newlines."), |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1358 ), "Markdown rendering options."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1359 ) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1360 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1361 ### Configuration classes |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1362 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1363 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1364 class Config: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1365 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1366 """Base class for configuration objects. |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1367 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1368 Configuration options may be accessed as attributes or items |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1369 of instances of this class. All option names are uppercased. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1370 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1371 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1372 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1373 # Config file name |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1374 INI_FILE = "config.ini" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1375 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1376 # Object attributes that should not be taken as common configuration |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1377 # options in __setattr__ (most of them are initialized in constructor): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1378 # builtin pseudo-option - package home directory |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1379 HOME = "." |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1380 # names of .ini file sections, in order |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1381 sections = None |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1382 # section comments |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1383 section_descriptions = None |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1384 # lists of option names for each section, in order |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1385 section_options = None |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1386 # mapping from option names and aliases to Option instances |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1387 options = None |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1388 # actual name of the config file. set on load. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1389 filepath = os.path.join(HOME, INI_FILE) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1390 |
|
3431
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1391 def __init__(self, config_path=None, layout=None, settings={}): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1392 """Initialize confing instance |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1393 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1394 Parameters: |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1395 config_path: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1396 optional directory or file name of the config file. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1397 If passed, load the config after processing layout (if any). |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1398 If config_path is a directory name, use default base name |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1399 of the config file. |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1400 layout: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1401 optional configuration layout, a sequence of |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1402 section definitions suitable for .add_section() |
|
3431
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1403 settings: |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1404 optional setting overrides (dictionary). |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1405 The overrides are applied after loading config file. |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1406 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1407 """ |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1408 # initialize option containers: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1409 self.sections = [] |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1410 self.section_descriptions = {} |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1411 self.section_options = {} |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1412 self.options = {} |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1413 # add options from the layout structure |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1414 if layout: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1415 for section in layout: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1416 self.add_section(*section) |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1417 if config_path is not None: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1418 self.load(config_path) |
|
3431
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1419 for (name, value) in settings.items(): |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1420 self[name.upper()] = value |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1421 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1422 def add_section(self, section, options, description=None): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1423 """Define new config section |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1424 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1425 Parameters: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1426 section - name of the config.ini section |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1427 options - a sequence of Option definitions. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1428 Each Option definition is a sequence |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1429 containing class object and constructor |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1430 parameters, starting from the setting name: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1431 setting, default, [description, [aliases]] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1432 description - optional section comment |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1433 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1434 Note: aliases should only exist in historical options |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1435 for backwards compatibility - new options should |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1436 *not* have aliases! |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1437 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1438 """ |
|
5128
4058fc1ec746
replacing depricated has_key references by in to support python 3. Errors reported by python -3 roundup_server. Unit tests test_config test_security pass although test_config is a bit weak in coverage.
John Rouillard <rouilj@ieee.org>
parents:
5117
diff
changeset
|
1439 if description or not (section in self.section_descriptions): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1440 self.section_descriptions[section] = description |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1441 for option_def in options: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1442 klass = option_def[0] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1443 args = option_def[1:] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1444 option = klass(self, section, *args) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1445 self.add_option(option) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1446 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1447 def add_option(self, option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1448 """Adopt a new Option object""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1449 _section = option.section |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1450 _name = option.setting |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1451 if _section not in self.sections: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1452 self.sections.append(_section) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1453 _options = self._get_section_options(_section) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1454 if _name not in _options: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1455 _options.append(_name) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1456 # (section, name) key is used for writing .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1457 self.options[(_section, _name)] = option |
|
4074
e039f3cbbb96
Make RDBMS cache-size configurable.
Stefan Seefeld <stefan@seefeld.name>
parents:
4013
diff
changeset
|
1458 # make the option known under all of its A.K.A.s |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1459 for _name in option.aliases: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1460 self.options[_name] = option |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1461 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1462 def update_option(self, name, klass, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1463 default=NODEFAULT, description=None): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1464 """Override behaviour of early created option. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1465 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1466 Parameters: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1467 name: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1468 option name |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1469 klass: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1470 one of the Option classes |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1471 default: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1472 optional default value for the option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1473 description: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1474 optional new description for the option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1475 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1476 Conversion from current option value to new class value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1477 is done via string representation. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1478 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1479 This method may be used to attach some brains |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1480 to options autocreated by UserConfig. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1481 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1482 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1483 # fetch current option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1484 option = self._get_option(name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1485 # compute constructor parameters |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1486 if default is NODEFAULT: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1487 default = option.default |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1488 if description is None: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1489 description = option.description |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1490 value = option.value2str(current=1) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1491 # resurrect the option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1492 option = klass(self, option.section, option.setting, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1493 default=default, description=description) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1494 # apply the value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1495 option.set(value) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1496 # incorporate new option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1497 del self[name] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1498 self.add_option(option) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1499 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1500 def reset(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1501 """Set all options to their default values""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1502 for _option in self.items(): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1503 _option.reset() |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1504 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1505 # Meant for commandline tools. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1506 # Allows automatic creation of configuration files like this: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1507 # roundup-server -p 8017 -u roundup --save-config |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1508 def getopt(self, args, short_options="", long_options=(), |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1509 config_load_options=("C", "config"), **options): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1510 """Apply options specified in command line arguments. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1511 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1512 Parameters: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1513 args: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1514 command line to parse (sys.argv[1:]) |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1515 short_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1516 optional string of letters for command line options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1517 that are not config options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1518 long_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1519 optional list of names for long options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1520 that are not config options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1521 config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1522 two-element sequence (letter, long_option) defining |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1523 the options for config file. If unset, don't load |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1524 config file; otherwise config file is read prior |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1525 to applying other options. Short option letter |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1526 must not have a colon and long_option name must |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1527 not have an equal sign or '--' prefix. |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1528 options: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1529 mapping from option names to command line option specs. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1530 e.g. server_port="p:", server_user="u:" |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1531 Names are forced to lower case for commandline parsing |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1532 (long options) and to upper case to find config options. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1533 Command line options accepting no value are assumed |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1534 to be binary and receive value 'yes'. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1535 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1536 Return value: same as for python standard getopt(), except that |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1537 processed options are removed from returned option list. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1538 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1539 """ |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1540 # take a copy of long_options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1541 long_options = list(long_options) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1542 # build option lists |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1543 cfg_names = {} |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1544 booleans = [] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1545 for (name, letter) in options.items(): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1546 cfg_name = name.upper() |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1547 short_opt = "-" + letter[0] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1548 name = name.lower().replace("_", "-") |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1549 cfg_names.update({short_opt: cfg_name, "--" + name: cfg_name}) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1550 |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1551 short_options += letter |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1552 if letter[-1] == ":": |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1553 long_options.append(name + "=") |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1554 else: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1555 booleans.append(short_opt) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1556 long_options.append(name) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1557 |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1558 if config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1559 short_options += config_load_options[0] + ":" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1560 long_options.append(config_load_options[1] + "=") |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1561 # compute names that will be searched in getopt return value |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1562 config_load_options = ( |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1563 "-" + config_load_options[0], |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1564 "--" + config_load_options[1], |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1565 ) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1566 # parse command line arguments |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1567 optlist, args = getopt.getopt(args, short_options, long_options) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1568 # load config file if requested |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1569 if config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1570 for option in optlist: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1571 if option[0] in config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1572 self.load_ini(option[1]) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1573 optlist.remove(option) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1574 break |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1575 # apply options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1576 extra_options = [] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1577 for (opt, arg) in optlist: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1578 if (opt in booleans): # and not arg |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1579 arg = "yes" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1580 try: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1581 name = cfg_names[opt] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1582 except KeyError: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1583 extra_options.append((opt, arg)) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1584 else: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1585 self[name] = arg |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1586 return (extra_options, args) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1587 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1588 # option and section locators (used in option access methods) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1589 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1590 def _get_option(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1591 try: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1592 return self.options[name] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1593 except KeyError: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1594 raise InvalidOptionError(name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1595 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1596 def _get_section_options(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1597 return self.section_options.setdefault(name, []) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1598 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1599 def _get_unset_options(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1600 """Return options that need manual adjustments |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1601 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1602 Return value is a dictionary where keys are section |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1603 names and values are lists of option names as they |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1604 appear in the config file. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1605 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1606 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1607 need_set = {} |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1608 for option in self.items(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1609 if not option.isset(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1610 need_set.setdefault(option.section, []).append(option.setting) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1611 return need_set |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1612 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1613 def _adjust_options(self, config): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1614 """Load ad-hoc option definitions from ConfigParser instance.""" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1615 pass |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1616 |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1617 def _get_name(self): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1618 """Return the service name for config file heading""" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1619 return "" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1620 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1621 # file operations |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1622 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1623 def load_ini(self, config_path, defaults=None): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1624 """Set options from config.ini file in given home_dir |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1625 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1626 Parameters: |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1627 config_path: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1628 directory or file name of the config file. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1629 If config_path is a directory name, use default |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1630 base name of the config file |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1631 defaults: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1632 optional dictionary of defaults for ConfigParser |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1633 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1634 Note: if home_dir does not contain config.ini file, |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1635 no error is raised. Config will be reset to defaults. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1636 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1637 """ |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1638 if os.path.isdir(config_path): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1639 home_dir = config_path |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1640 config_path = os.path.join(config_path, self.INI_FILE) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1641 else: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1642 home_dir = os.path.dirname(config_path) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1643 # parse the file |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1644 config_defaults = {"HOME": home_dir} |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1645 if defaults: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1646 config_defaults.update(defaults) |
|
5246
c5dd7b151ec2
Make an import work with either Python 2 or 3.
Eric S. Raymond <esr@thyrsus.com>
parents:
5231
diff
changeset
|
1647 config = configparser.ConfigParser(config_defaults) |
|
2839
f965de0c1e75
fix load_ini: configuration file name was ignored after all
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2770
diff
changeset
|
1648 config.read([config_path]) |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1649 # .ini file loaded ok. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1650 self.HOME = home_dir |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1651 self.filepath = config_path |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1652 self._adjust_options(config) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1653 # set the options, starting from HOME |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1654 self.reset() |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1655 for option in self.items(): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1656 option.load_ini(config) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1657 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1658 def load(self, home_dir): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1659 """Load configuration settings from home_dir""" |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1660 self.load_ini(home_dir) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1661 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1662 def save(self, ini_file=None): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1663 """Write current configuration to .ini file |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1664 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1665 'ini_file' argument, if passed, must be valid full path |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1666 to the file to write. If omitted, default file in current |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1667 HOME is created. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1668 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1669 If the file to write already exists, it is saved with '.bak' |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1670 extension. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1671 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1672 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1673 if ini_file is None: |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1674 ini_file = self.filepath |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1675 _tmp_file = os.path.splitext(ini_file)[0] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1676 _bak_file = _tmp_file + ".bak" |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1677 _tmp_file = _tmp_file + ".tmp" |
|
5383
6fbb7d52e38f
Python 3 preparation: use open() instead of file().
Joseph Myers <jsm@polyomino.org.uk>
parents:
5315
diff
changeset
|
1678 _fp = open(_tmp_file, "wt") |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1679 _fp.write("# %s configuration file\n" % self._get_name()) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1680 _fp.write("# Autogenerated at %s\n" % time.asctime()) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1681 need_set = self._get_unset_options() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1682 if need_set: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1683 _fp.write("\n# WARNING! Following options need adjustments:\n") |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1684 for section, options in need_set.items(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1685 _fp.write("# [%s]: %s\n" % (section, ", ".join(options))) |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1686 for section in self.sections: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1687 comment = self.section_descriptions.get(section, None) |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1688 if comment: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1689 _fp.write("\n# ".join([""] + comment.split("\n")) + "\n") |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1690 else: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1691 # no section comment - just leave a blank line between sections |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1692 _fp.write("\n") |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1693 _fp.write("[%s]\n" % section) |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1694 for option in self._get_section_options(section): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1695 _fp.write("\n" + self.options[(section, option)].format()) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1696 _fp.close() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1697 if os.access(ini_file, os.F_OK): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1698 if os.access(_bak_file, os.F_OK): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1699 os.remove(_bak_file) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1700 os.rename(ini_file, _bak_file) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1701 os.rename(_tmp_file, ini_file) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1702 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1703 # container emulation |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1704 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1705 def __len__(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1706 return len(self.items()) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1707 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1708 def __getitem__(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1709 if name == "HOME": |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1710 return self.HOME |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1711 else: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1712 return self._get_option(name).get() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1713 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1714 def __setitem__(self, name, value): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1715 if name == "HOME": |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1716 self.HOME = value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1717 else: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1718 self._get_option(name).set(value) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1719 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1720 def __delitem__(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1721 _option = self._get_option(name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1722 _section = _option.section |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1723 _name = _option.setting |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1724 self._get_section_options(_section).remove(_name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1725 del self.options[(_section, _name)] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1726 for _alias in _option.aliases: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1727 del self.options[_alias] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1728 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1729 def items(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1730 """Return the list of Option objects, in .ini file order |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1731 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1732 Note that HOME is not included in this list |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1733 because it is builtin pseudo-option, not a real Option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1734 object loaded from or saved to .ini file. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1735 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1736 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1737 return [self.options[(_section, _name)] |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1738 for _section in self.sections |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1739 for _name in self._get_section_options(_section)] |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1740 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1741 def keys(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1742 """Return the list of "canonical" names of the options |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1743 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1744 Unlike .items(), this list also includes HOME |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1745 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1746 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1747 return ["HOME"] + [_option.name for _option in self.items()] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1748 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1749 # .values() is not implemented because i am not sure what should be |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1750 # the values returned from this method: Option instances or config values? |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1751 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1752 # attribute emulation |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1753 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1754 def __setattr__(self, name, value): |
|
5128
4058fc1ec746
replacing depricated has_key references by in to support python 3. Errors reported by python -3 roundup_server. Unit tests test_config test_security pass although test_config is a bit weak in coverage.
John Rouillard <rouilj@ieee.org>
parents:
5117
diff
changeset
|
1755 if (name in self.__dict__) or hasattr(self.__class__, name): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1756 self.__dict__[name] = value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1757 else: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1758 self._get_option(name).set(value) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1759 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1760 # Note: __getattr__ is not symmetric to __setattr__: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1761 # self.__dict__ lookup is done before calling this method |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1762 def __getattr__(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1763 return self[name] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1764 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1765 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1766 class UserConfig(Config): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1767 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1768 """Configuration for user extensions. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1769 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1770 Instances of this class have no predefined configuration layout. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1771 Options are created on the fly for each setting present in the |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1772 config file. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1773 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1774 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1775 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1776 def _adjust_options(self, config): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1777 # config defaults appear in all sections. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1778 # we'll need to filter them out. |
|
5395
23b8e6067f7c
Python 3 preparation: update calls to dict methods.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5386
diff
changeset
|
1779 defaults = list(config.defaults().keys()) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1780 # see what options are already defined and add missing ones |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1781 preset = [(option.section, option.setting) for option in self.items()] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1782 for section in config.sections(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1783 for name in config.options(section): |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1784 if ((section, name) not in preset) \ |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1785 and (name not in defaults): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1786 self.add_option(Option(self, section, name)) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1787 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1788 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1789 class CoreConfig(Config): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1790 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1791 """Roundup instance configuration. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1792 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1793 Core config has a predefined layout (see the SETTINGS structure), |
|
6354
b61de764c8cc
Remove left over python style config remnant, doc update.
John Rouillard <rouilj@ieee.org>
parents:
6353
diff
changeset
|
1794 two additional attributes: |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1795 detectors: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1796 user-defined configuration for detectors |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1797 ext: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1798 user-defined configuration for extensions |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1799 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1800 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1801 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1802 # user configs |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1803 ext = None |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1804 detectors = None |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1805 |
|
3431
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1806 def __init__(self, home_dir=None, settings={}): |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1807 Config.__init__(self, home_dir, layout=SETTINGS, settings=settings) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1808 # load the config if home_dir given |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1809 if home_dir is None: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1810 self.init_logging() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1811 |
|
4342
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1812 def copy(self): |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1813 new = CoreConfig() |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1814 new.sections = list(self.sections) |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1815 new.section_descriptions = dict(self.section_descriptions) |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1816 new.section_options = dict(self.section_options) |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1817 new.options = dict(self.options) |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1818 return new |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
1819 |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1820 def _get_unset_options(self): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1821 need_set = Config._get_unset_options(self) |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1822 # remove MAIL_PASSWORD if MAIL_USER is empty |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1823 if "password" in need_set.get("mail", []): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1824 if not self["MAIL_USERNAME"]: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1825 settings = need_set["mail"] |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1826 settings.remove("password") |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1827 if not settings: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1828 del need_set["mail"] |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1829 return need_set |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1830 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1831 def _get_name(self): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1832 return self["TRACKER_NAME"] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1833 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1834 def reset(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1835 Config.reset(self) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1836 if self.ext: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1837 self.ext.reset() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1838 if self.detectors: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1839 self.detectors.reset() |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1840 self.init_logging() |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1841 |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1842 def init_logging(self): |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1843 _file = self["LOGGING_CONFIG"] |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1844 if _file and os.path.isfile(_file): |
|
5939
94c415c7cd36
Make gunicorn --access-logfile work with custom logging config
John Rouillard <rouilj@ieee.org>
parents:
5878
diff
changeset
|
1845 logging.config.fileConfig(_file, |
|
94c415c7cd36
Make gunicorn --access-logfile work with custom logging config
John Rouillard <rouilj@ieee.org>
parents:
5878
diff
changeset
|
1846 disable_existing_loggers=self["LOGGING_DISABLE_LOGGERS"]) |
|
3155
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1847 return |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1848 |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1849 _file = self["LOGGING_FILENAME"] |
|
4411
39660ba47b7c
- No longer use the root logger, use a logger with prefix "roundup"...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4405
diff
changeset
|
1850 # set file & level on the roundup logger |
|
39660ba47b7c
- No longer use the root logger, use a logger with prefix "roundup"...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4405
diff
changeset
|
1851 logger = logging.getLogger('roundup') |
|
3155
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1852 if _file: |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1853 hdlr = logging.FileHandler(_file) |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1854 else: |
|
3155
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1855 hdlr = logging.StreamHandler(sys.stdout) |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1856 formatter = logging.Formatter( |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1857 '%(asctime)s %(levelname)s %(message)s') |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1858 hdlr.setFormatter(formatter) |
|
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1859 # no logging API to remove all existing handlers!?! |
|
4337
9225a37fbeae
Fix file handle leak in some web interfaces with logging turned on
Richard Jones <richard@users.sourceforge.net>
parents:
4255
diff
changeset
|
1860 for h in logger.handlers: |
|
9225a37fbeae
Fix file handle leak in some web interfaces with logging turned on
Richard Jones <richard@users.sourceforge.net>
parents:
4255
diff
changeset
|
1861 h.close() |
|
9225a37fbeae
Fix file handle leak in some web interfaces with logging turned on
Richard Jones <richard@users.sourceforge.net>
parents:
4255
diff
changeset
|
1862 logger.removeHandler(hdlr) |
|
3155
57b60bda9473
Python 2.3 minimum version - bye bye roundup.rlog, you had a short life.
Richard Jones <richard@users.sourceforge.net>
parents:
3099
diff
changeset
|
1863 logger.handlers = [hdlr] |
|
5424
fd0481aa17b8
Python 3 preparation: avoid logging._levelNames.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5416
diff
changeset
|
1864 logger.setLevel(self["LOGGING_LEVEL"] or "ERROR") |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1865 |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1866 def validator(self, options): |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1867 """ Validate options once all options are loaded. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1868 |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1869 Used to validate settings when options are dependent |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1870 on each other. E.G. indexer_language can only be |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1871 validated if xapian indexer is used. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1872 """ |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1873 if options['INDEXER']._value in ("", "xapian"): |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1874 try: |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1875 import xapian |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1876 except ImportError: |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1877 # indexer is probably '' and xapian isn't present |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1878 # so just return at end of method |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1879 pass |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1880 else: |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1881 try: |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1882 lang = options["INDEXER_LANGUAGE"]._value |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1883 xapian.Stem(lang) |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1884 except xapian.InvalidArgumentError: |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1885 import textwrap |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1886 lang_avail = b2s(xapian.Stem.get_available_languages()) |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1887 languages = textwrap.fill(_("Valid languages: ") + |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1888 lang_avail, 75, |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1889 subsequent_indent=" ") |
|
6363
08e209a7f22b
Use OptionValueError for indexer_language error, add configuration tests
John Rouillard <rouilj@ieee.org>
parents:
6358
diff
changeset
|
1890 raise OptionValueError( options["INDEXER_LANGUAGE"], |
|
08e209a7f22b
Use OptionValueError for indexer_language error, add configuration tests
John Rouillard <rouilj@ieee.org>
parents:
6358
diff
changeset
|
1891 lang, languages) |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1892 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1893 def load(self, home_dir): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1894 """Load configuration from path designated by home_dir argument""" |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1895 if os.path.isfile(os.path.join(home_dir, self.INI_FILE)): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1896 self.load_ini(home_dir) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1897 else: |
|
6300
778a9f455067
Remove old code import imp, old style trackers db/backend_name
John Rouillard <rouilj@ieee.org>
parents:
6277
diff
changeset
|
1898 raise NoConfigError(home_dir) |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1899 |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1900 # validator does inter-setting validation checks. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1901 # when there are dependencies between options. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1902 self.validator(self.options) |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
1903 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1904 self.init_logging() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1905 self.ext = UserConfig(os.path.join(home_dir, "extensions")) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1906 self.detectors = UserConfig(os.path.join(home_dir, "detectors")) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1907 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1908 def load_ini(self, home_dir, defaults=None): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1909 """Set options from config.ini file in given home_dir directory""" |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1910 config_defaults = {"TRACKER_HOME": home_dir} |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1911 if defaults: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1912 config_defaults.update(defaults) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1913 Config.load_ini(self, home_dir, config_defaults) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1914 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1915 # in this config, HOME is also known as TRACKER_HOME |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1916 def __getitem__(self, name): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1917 if name == "TRACKER_HOME": |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1918 return self.HOME |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1919 else: |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1920 return Config.__getitem__(self, name) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1921 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1922 def __setitem__(self, name, value): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1923 if name == "TRACKER_HOME": |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1924 self.HOME = value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1925 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1926 self._get_option(name).set(value) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1927 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1928 def __setattr__(self, name, value): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1929 if name == "TRACKER_HOME": |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1930 self.__dict__["HOME"] = value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1931 else: |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1932 Config.__setattr__(self, name, value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1933 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1934 # vim: set et sts=4 sw=4 : |
