Mercurial > p > roundup > code
annotate roundup/configuration.py @ 6682:0b8d34b64930
issue2551205 bugfix missing _value2str
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 17 May 2022 18:05:45 -0400 |
| parents | ab2ed11c021e |
| children | 9ca5cbffa0c4 |
| 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 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
12 import errno |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
13 import logging |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
14 import logging.config |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
15 import os |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
16 import re |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
17 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
|
18 import smtplib |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
19 |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
20 import roundup.date |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
21 |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
22 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
|
23 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
|
24 import binascii |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
25 from roundup.i18n import _ |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
26 |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
27 from roundup.backends import list_backends |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
28 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
29 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
|
30 import configparser # Python 3 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
31 else: |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
32 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
|
33 |
| 6126 | 34 from roundup.exceptions import RoundupException |
|
6123
c177e7128dc9
issue2551083 Replace BaseException and Exception with RoundupException
John Rouillard <rouilj@ieee.org>
parents:
6053
diff
changeset
|
35 |
|
2618
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 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
42 |
|
6557
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
43 class ParsingOptionError(ConfigurationError): |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
44 def __str__(self): |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
45 return self.args[0] |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
46 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
47 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
48 class NoConfigError(ConfigurationError): |
|
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 """Raised when configuration loading fails |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
51 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
52 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
|
53 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
54 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
55 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
56 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
57 return "No valid configuration files found in directory %s" \ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
58 % self.args[0] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
59 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
60 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
61 class InvalidOptionError(ConfigurationError, KeyError, AttributeError): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
62 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
63 """Attempted access to non-existing configuration option |
|
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 Configuration options may be accessed as configuration object |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
66 attributes or items. So this exception instances also are |
|
3820
771248aa8302
typos in docstrings
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3788
diff
changeset
|
67 instances of KeyError (invalid item access) and AttributeError |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
68 (invalid attribute access). |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
69 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
70 Constructor parameter: option name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
71 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
72 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
73 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
74 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
75 return "Unsupported configuration option: %s" % self.args[0] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
76 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
77 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
78 class OptionValueError(ConfigurationError, ValueError): |
|
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 """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
|
81 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
82 Constructor parameters: Option instance, offending value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
83 and optional info string. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
84 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
85 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
86 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
87 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
88 _args = self.args |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
89 _rv = "Invalid value for %(option)s: %(value)r" % { |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
90 "option": _args[0].name, "value": _args[1]} |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
91 if len(_args) > 2: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
92 _rv += "\n".join(("",) + _args[2:]) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
93 return _rv |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
94 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
95 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
96 class OptionUnsetError(ConfigurationError): |
|
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 """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
|
99 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
100 Constructor parameters: Option instance. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
101 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
102 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
103 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
104 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
105 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
|
106 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
107 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
108 class UnsetDefaultValue: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
109 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
110 """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
|
111 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
112 def __str__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
113 return "NO DEFAULT" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
114 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
115 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
116 NODEFAULT = UnsetDefaultValue() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
117 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
118 |
|
5878
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
119 def create_token(size=32): |
|
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
120 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
|
121 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
122 ### Option classes |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
123 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
124 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
125 class Option: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
126 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
127 """Single configuration option. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
128 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
129 Options have following attributes: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
130 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
131 config |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
132 reference to the containing Config object |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
133 section |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
134 name of the section in the tracker .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
135 setting |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
136 option name in the tracker .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
137 default |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
138 default option value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
139 description |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
140 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
|
141 name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
142 "canonical name" of the configuration option. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
143 For items in the 'main' section this is uppercased |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
144 'setting' name. For other sections, the name is |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
145 composed of the section name and the setting name, |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
146 joined with underscore. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
147 aliases |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
148 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
|
149 by old names used in previous Roundup versions. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
150 "Canonical name" is also included. |
|
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 The name and aliases are forced to be uppercase. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
153 The setting name is forced to lowercase. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
154 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
155 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
156 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
157 class_description = None |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
158 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
159 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
|
160 default=NODEFAULT, description=None, aliases=None): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
161 self.config = config |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
162 self.section = section |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
163 self.setting = setting.lower() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
164 self.default = default |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
165 self.description = description |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
166 self.name = setting.upper() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
167 if section != "main": |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
168 self.name = "_".join((section.upper(), self.name)) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
169 if aliases: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
170 self.aliases = [alias.upper() for alias in list(aliases)] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
171 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
172 self.aliases = [] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
173 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
|
174 # convert default to internal representation |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
175 if default is NODEFAULT: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
176 _value = default |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
177 else: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
178 _value = self.str2value(default) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
179 # 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
|
180 self._value = self._default_value = _value |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
181 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
182 def str2value(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
183 """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
|
184 return value |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
185 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
186 def _value2str(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
187 """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
|
188 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
189 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
|
190 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
|
191 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
|
192 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
193 """ |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
194 return str(value) |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
195 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
196 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
|
197 """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
|
198 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
199 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
|
200 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
201 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
202 if current: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
203 value = self._value |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
204 if value is NODEFAULT: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
205 return str(value) |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
206 else: |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
207 return self._value2str(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
208 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
209 def get(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
210 """Return current option value""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
211 if self._value is NODEFAULT: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
212 raise OptionUnsetError(self) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
213 return self._value |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
214 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
215 def set(self, value): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
216 """Update the value""" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
217 self._value = self.str2value(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
218 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
219 def reset(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
220 """Reset the value to default""" |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
221 self._value = self._default_value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
222 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
223 def isdefault(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
224 """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
|
225 return self._value == self._default_value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
226 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
227 def isset(self): |
|
3820
771248aa8302
typos in docstrings
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3788
diff
changeset
|
228 """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
|
229 return self._value != NODEFAULT |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
230 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
231 def __str__(self): |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
232 return self.value2str(self._value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
233 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
234 def __repr__(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
235 if self.isdefault(): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
236 _format = "<%(class)s %(name)s (default): %(value)s>" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
237 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
238 _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
|
239 return _format % { |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
240 "class": self.__class__.__name__, |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
241 "name": self.name, |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
242 "default": self.value2str(self._default_value), |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
243 "value": self.value2str(self._value), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
244 } |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
245 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
246 def format(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
247 """Return .ini file fragment for this option""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
248 _desc_lines = [] |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
249 for _description in (self.description, self.class_description): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
250 if _description: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
251 _desc_lines.extend(_description.split("\n")) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
252 # 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
|
253 if self.isset(): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
254 _is_set = "" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
255 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
256 _is_set = "#" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
257 _rv = "# %(description)s\n# Default: %(default)s\n" \ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
258 "%(is_set)s%(name)s = %(value)s\n" % { |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
259 "description": "\n# ".join(_desc_lines), |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
260 "default": self.value2str(self._default_value), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
261 "name": self.setting, |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
262 "value": self.value2str(self._value), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
263 "is_set": _is_set |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
264 } |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
265 return _rv |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
266 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
267 def load_ini(self, config): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
268 """Load value from ConfigParser object""" |
|
6557
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
269 try: |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
270 if config.has_option(self.section, self.setting): |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
271 self.set(config.get(self.section, self.setting)) |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
272 except configparser.InterpolationSyntaxError as e: |
|
8687c096a945
Handle configparser.InterpolationSyntaxError
John Rouillard <rouilj@ieee.org>
parents:
6514
diff
changeset
|
273 raise ParsingOptionError( |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
274 _("Error in %(filepath)s with section [%(section)s] at " |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
275 "option %(option)s: %(message)s") % { |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
276 "filepath": self.config.filepath, |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
277 "section": e.section, |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
278 "option": e.option, |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
279 "message": str(e)}) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
280 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
281 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
282 class BooleanOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
283 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
284 """Boolean option: yes or no""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
285 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
286 class_description = "Allowed values: yes, no" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
287 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
288 def _value2str(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
289 if value: |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
290 return "yes" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
291 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
292 return "no" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
293 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
294 def str2value(self, value): |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
295 if isinstance(value, type("")): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
296 _val = value.lower() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
297 if _val in ("yes", "true", "on", "1"): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
298 _val = 1 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
299 elif _val in ("no", "false", "off", "0"): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
300 _val = 0 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
301 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
302 raise OptionValueError(self, value, self.class_description) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
303 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
304 _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
|
305 return _val |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
306 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
307 |
|
3544
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
308 class WordListOption(Option): |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
309 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
310 """List of strings""" |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
311 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
312 class_description = "Allowed values: comma-separated list of words" |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
313 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
314 def _value2str(self, value): |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
315 return ','.join(value) |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
316 |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
317 def str2value(self, value): |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
318 return value.split(',') |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
319 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
320 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
321 class RunDetectorOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
322 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
323 """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
|
324 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
325 class_description = "Allowed values: yes, no, new" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
326 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
327 def str2value(self, value): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
328 _val = value.lower() |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
329 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
|
330 return _val |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
331 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
332 raise OptionValueError(self, value, self.class_description) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
333 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
334 |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
335 class CsrfSettingOption(Option): |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
336 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
337 """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
|
338 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
339 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
|
340 |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
341 def str2value(self, value): |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
342 _val = value.lower() |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
343 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
|
344 return _val |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
345 else: |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
346 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
|
347 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
348 |
|
5212
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
349 class SameSiteSettingOption(Option): |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
350 |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
351 """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
|
352 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
|
353 |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
354 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
|
355 |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
356 def str2value(self, value): |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
357 _val = value.lower() |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
358 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
|
359 return _val.capitalize() |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
360 else: |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
361 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
|
362 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
363 |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
364 class DatabaseBackend(Option): |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
365 """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
|
366 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
|
367 |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
368 def str2value(self, value): |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
369 _val = value.lower() |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
370 if _val in list_backends(): |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
371 return _val |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
372 else: |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
373 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
|
374 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
375 |
|
5305
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
376 class HtmlToTextOption(Option): |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
377 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
378 """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
|
379 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
|
380 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
|
381 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
|
382 be used. |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
383 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
384 """ |
|
5305
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
385 |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
386 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
|
387 |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
388 def str2value(self, value): |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
389 _val = value.lower() |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
390 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
|
391 return _val |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
392 else: |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
393 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
|
394 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
395 |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
396 class EmailBodyOption(Option): |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
397 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
398 """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
|
399 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
|
400 |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
401 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
|
402 |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
403 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
|
404 _val = value.lower() |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
405 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
|
406 return _val |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
407 else: |
|
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
408 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
|
409 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
410 |
|
4887
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
411 class IsolationOption(Option): |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
412 """Database isolation levels""" |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
413 |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
414 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
|
415 'serializable'] |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
416 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
|
417 for a in allowed) |
|
4887
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
418 |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
419 def str2value(self, value): |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
420 _val = value.lower() |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
421 if _val in self.allowed: |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
422 return _val |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
423 raise OptionValueError(self, value, self.class_description) |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
424 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
425 |
| 6358 | 426 class IndexerOption(Option): |
| 427 """Valid options for indexer""" | |
| 428 | |
|
6588
91ab3e0ffcd0
Summary: Add test cases for sqlite fts
John Rouillard <rouilj@ieee.org>
parents:
6584
diff
changeset
|
429 allowed = ['', 'xapian', 'whoosh', 'native', 'native-fts'] |
| 6358 | 430 class_description = "Allowed values: %s" % ', '.join("'%s'" % a |
| 431 for a in allowed) | |
| 432 | |
|
6604
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
433 # FIXME this is the result of running: |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
434 # SELECT cfgname FROM pg_ts_config; |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
435 # on a postgresql 14.1 server. |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
436 # So the best we can do is hardcode this. |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
437 valid_langs = [ "simple", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
438 "custom1", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
439 "custom2", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
440 "custom3", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
441 "custom4", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
442 "custom5", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
443 "arabic", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
444 "armenian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
445 "basque", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
446 "catalan", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
447 "danish", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
448 "dutch", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
449 "english", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
450 "finnish", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
451 "french", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
452 "german", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
453 "greek", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
454 "hindi", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
455 "hungarian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
456 "indonesian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
457 "irish", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
458 "italian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
459 "lithuanian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
460 "nepali", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
461 "norwegian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
462 "portuguese", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
463 "romanian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
464 "russian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
465 "serbian", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
466 "spanish", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
467 "swedish", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
468 "tamil", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
469 "turkish", |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
470 "yiddish" ] |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
471 |
| 6358 | 472 def str2value(self, value): |
| 473 _val = value.lower() | |
| 474 if _val in self.allowed: | |
| 475 return _val | |
| 476 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
|
477 |
|
6584
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
478 def validate(self, options): |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
479 |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
480 if self._value in ("", "xapian"): |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
481 try: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
482 import xapian |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
483 except ImportError: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
484 # indexer is probably '' and xapian isn't present |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
485 # so just return at end of method |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
486 pass |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
487 else: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
488 try: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
489 lang = options["INDEXER_LANGUAGE"]._value |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
490 xapian.Stem(lang) |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
491 except xapian.InvalidArgumentError: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
492 import textwrap |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
493 lang_avail = b2s(xapian.Stem.get_available_languages()) |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
494 languages = textwrap.fill(_("Valid languages: ") + |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
495 lang_avail, 75, |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
496 subsequent_indent=" ") |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
497 raise OptionValueError(options["INDEXER_LANGUAGE"], |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
498 lang, languages) |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
499 |
|
6604
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
500 if self._value == "native-fts": |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
501 lang = options["INDEXER_LANGUAGE"]._value |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
502 if lang not in self.valid_langs: |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
503 import textwrap |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
504 languages = textwrap.fill(_("Expected languages: ") + |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
505 " ".join(self.valid_langs), 75, |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
506 subsequent_indent=" ") |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
507 raise OptionValueError(options["INDEXER_LANGUAGE"], |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
508 lang, languages) |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
509 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
510 class MailAddressOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
511 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
512 """Email address |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
513 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
514 Email addresses may be either fully qualified or local. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
515 In the latter case MAIL_DOMAIN is automatically added. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
516 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
517 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
518 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
519 def get(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
520 _val = Option.get(self) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
521 if "@" not in _val: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
522 _val = "@".join((_val, self.config["MAIL_DOMAIN"])) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
523 return _val |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
524 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
525 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
526 class FilePathOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
527 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
528 """File or directory path name |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
529 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
530 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
|
531 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
532 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
533 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
534 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
|
535 "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
|
536 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
537 def get(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
538 _val = Option.get(self) |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
539 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
|
540 _val = os.path.join(self.config["HOME"], _val) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
541 return _val |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
542 |
|
6681
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
543 class SpaceSeparatedListOption(Option): |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
544 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
545 """List of space seperated elements. |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
546 """ |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
547 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
548 class_description = "A list of space separated elements." |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
549 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
550 def get(self): |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
551 pathlist = [] |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
552 _val = Option.get(self) |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
553 for elem in _val.split(): |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
554 pathlist.append(elem) |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
555 if pathlist: |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
556 return pathlist |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
557 else: |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
558 return None |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
559 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
560 class OriginHeadersListOption(Option): |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
561 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
562 """List of space seperated origin header values. |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
563 """ |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
564 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
565 class_description = "A list of space separated case sensitive origin headers 'scheme://host'." |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
566 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
567 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
568 def set(self, _val): |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
569 pathlist = self._value = [] |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
570 for elem in _val.split(): |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
571 pathlist.append(elem) |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
572 if '*' in pathlist and len(pathlist) != 1: |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
573 raise OptionValueError(self, _val, |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
574 "If using '*' it must be the only element.") |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
575 |
|
6682
0b8d34b64930
issue2551205 bugfix missing _value2str
John Rouillard <rouilj@ieee.org>
parents:
6681
diff
changeset
|
576 def _value2str(self, value): |
|
0b8d34b64930
issue2551205 bugfix missing _value2str
John Rouillard <rouilj@ieee.org>
parents:
6681
diff
changeset
|
577 return ','.join(value) |
|
0b8d34b64930
issue2551205 bugfix missing _value2str
John Rouillard <rouilj@ieee.org>
parents:
6681
diff
changeset
|
578 |
|
5231
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
579 class MultiFilePathOption(Option): |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
580 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
581 """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
|
582 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
583 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
|
584 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
|
585 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
586 """ |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
587 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
588 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
|
589 "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
|
590 |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
591 def get(self): |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
592 pathlist = [] |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
593 _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
|
594 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
|
595 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
|
596 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
|
597 else: |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
598 pathlist.append(elem) |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
599 if pathlist: |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
600 return pathlist |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
601 else: |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
602 return None |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
603 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
604 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
605 class FloatNumberOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
606 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
607 """Floating point numbers""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
608 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
609 def str2value(self, value): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
610 try: |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
611 return float(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
612 except ValueError: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
613 raise OptionValueError(self, value, |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
614 "Floating point number required") |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
615 |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
616 def _value2str(self, value): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
617 _val = str(value) |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
618 # strip fraction part from integer numbers |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
619 if _val.endswith(".0"): |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
620 _val = _val[:-2] |
|
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
621 return _val |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
622 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
623 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
624 class IntegerNumberOption(Option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
625 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
626 """Integer numbers""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
627 |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
628 def str2value(self, value): |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
629 try: |
|
2623
4e1030d49cea
fix: Option defaults were applied as strings...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2622
diff
changeset
|
630 return int(value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
631 except ValueError: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
632 raise OptionValueError(self, value, "Integer number required") |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
633 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
634 |
|
5772
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
635 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
|
636 |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
637 """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
|
638 |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
639 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
|
640 try: |
|
8dbe307bdb57
Finish up login rate limit code. Set config item to 0 disables, make
John Rouillard <rouilj@ieee.org>
parents:
5770
diff
changeset
|
641 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
|
642 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
|
643 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
|
644 "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
|
645 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
|
646 except OptionValueError: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
647 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
|
648 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
|
649 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
|
650 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
651 |
|
3609
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
652 class OctalNumberOption(Option): |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
653 |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
654 """Octal Integer numbers""" |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
655 |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
656 def str2value(self, value): |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
657 try: |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
658 return int(value, 8) |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
659 except ValueError: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
660 raise OptionValueError(self, value, |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
661 "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
|
662 |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
663 def _value2str(self, value): |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
664 return oct(value) |
|
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
665 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
666 |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
667 class MandatoryOption(Option): |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
668 """Option must not be empty""" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
669 def str2value(self, value): |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
670 if not value: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
671 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
|
672 else: |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
673 return value |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
674 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
675 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
676 class SecretOption(Option): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
677 """A string not beginning with file:// or a file starting with file:// |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
678 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
679 Paths may be either absolute or relative to the HOME. |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
680 Value for option is the first line in the file. |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
681 It is mean to store secret information in the config file but |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
682 allow the config file to be stored in version control without |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
683 storing the secret there. |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
684 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
685 """ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
686 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
687 class_description = \ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
688 "A string that starts with 'file://' is interpreted as a file path \n" \ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
689 "relative to the tracker home. Using 'file:///' defines an absolute \n" \ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
690 "path. The first line of the file will be used as the value. Any \n" \ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
691 "string that does not start with 'file://' is used as is. It \n" \ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
692 "removes any whitespace at the end of the line, so a newline can \n" \ |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
693 "be put in the file.\n" |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
694 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
695 def get(self): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
696 _val = Option.get(self) |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
697 if isinstance(_val, str) and _val.startswith('file://'): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
698 filepath = _val[7:] |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
699 if filepath and not os.path.isabs(filepath): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
700 filepath = os.path.join(self.config["HOME"], filepath.strip()) |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
701 try: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
702 with open(filepath) as f: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
703 _val = f.readline().rstrip() |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
704 # except FileNotFoundError: py2/py3 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
705 # compatible version |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
706 except EnvironmentError as e: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
707 if e.errno != errno.ENOENT: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
708 raise |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
709 else: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
710 raise OptionValueError(self, _val, |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
711 "Unable to read value for %s. Error opening " |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
712 "%s: %s." % (self.name, e.filename, e.args[1])) |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
713 return self.str2value(_val) |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
714 |
|
6584
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
715 def validate(self, options): |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
716 if self.name == 'MAIL_PASSWORD': |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
717 if options['MAIL_USERNAME']._value: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
718 # MAIL_PASSWORD is an exception. It is mandatory only |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
719 # if MAIL_USERNAME is set. So check only if username |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
720 # is set. |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
721 try: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
722 self.get() |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
723 except OptionUnsetError: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
724 # provide error message with link to MAIL_USERNAME |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
725 raise OptionValueError(options["MAIL_PASSWORD"], |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
726 "not defined", |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
727 "Mail username is set, so this must be defined.") |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
728 else: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
729 self.get() |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
730 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
731 |
|
5770
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
732 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
|
733 """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
|
734 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
735 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
|
736 if not value: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
737 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
|
738 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
739 error_msg = '' |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
740 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
|
741 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
|
742 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
743 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
|
744 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
|
745 |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
746 if error_msg: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
747 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
|
748 else: |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
749 return value |
|
f91da208f26b
Validate that TRACKER_WEB url starts with https:// or http:// and ends
John Rouillard <rouilj@ieee.org>
parents:
5754
diff
changeset
|
750 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
751 |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
752 class NullableOption(Option): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
753 |
|
4074
e039f3cbbb96
Make RDBMS cache-size configurable.
Stefan Seefeld <stefan@seefeld.name>
parents:
4013
diff
changeset
|
754 """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
|
755 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
756 Default nullable strings list contains empty string only. |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
757 There is constructor parameter allowing to specify different nullables. |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
758 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
759 Conversion to external representation returns the first of the NULL |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
760 strings list when the value is None. |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
761 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
762 """ |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
763 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
764 NULL_STRINGS = ("",) |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
765 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
766 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
|
767 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
|
768 null_strings=NULL_STRINGS): |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
769 self.null_strings = list(null_strings) |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
770 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
|
771 description, aliases) |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
772 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
773 def str2value(self, value): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
774 if value in self.null_strings: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
775 return None |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
776 else: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
777 return value |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
778 |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
779 def _value2str(self, value): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
780 if value is None: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
781 return self.null_strings[0] |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
782 else: |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
783 return value |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
784 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
785 |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
786 class NullableFilePathOption(NullableOption, FilePathOption): |
|
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
787 |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
788 # .get() and class_description are from FilePathOption, |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
789 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
|
790 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
|
791 # everything else taken from NullableOption (inheritance order) |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
792 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
793 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
794 class SecretMandatoryOption(MandatoryOption, SecretOption): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
795 # use get from SecretOption and rest from MandatoryOption |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
796 get = SecretOption.get |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
797 class_description = SecretOption.class_description |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
798 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
799 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
800 class SecretNullableOption(NullableOption, SecretOption): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
801 # use get from SecretOption and rest from NullableOption |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
802 get = SecretOption.get |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
803 class_description = SecretOption.class_description |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
804 |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
805 |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
806 class TimezoneOption(Option): |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
807 |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
808 class_description = \ |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
809 "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
|
810 "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
|
811 "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
|
812 "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
|
813 |
|
5754
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
814 # 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
|
815 # 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
|
816 try: |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
817 import pytz |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
818 defaulttz = "UTC" |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
819 except ImportError: |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
820 defaulttz = "0" |
|
178ca608ddb9
Fix Issue2551030: Roundup fails to start if pytz to access Olson
John Rouillard <rouilj@ieee.org>
parents:
5748
diff
changeset
|
821 |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
822 def str2value(self, value): |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
823 try: |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
824 roundup.date.get_timezone(value) |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
825 except KeyError: |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
826 raise OptionValueError(self, value, |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
827 "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
|
828 return value |
|
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
829 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
830 |
|
6514
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
831 class HttpVersionOption(Option): |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
832 """Used by roundup-server to verify http version is set to valid |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
833 string.""" |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
834 |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
835 def str2value(self, value): |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
836 if value not in ["HTTP/1.0", "HTTP/1.1"]: |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
837 raise OptionValueError(self, value, |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
838 "Valid vaues for -V or --http_version are: HTTP/1.0, HTTP/1.1") |
|
6514
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
839 return value |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
840 |
|
a036712c96f4
Enable HTTP/1.1 support for roundup-server
John Rouillard <rouilj@ieee.org>
parents:
6458
diff
changeset
|
841 |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
842 class RegExpOption(Option): |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
843 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
844 """Regular Expression option (value is Regular Expression Object)""" |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
845 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
846 class_description = "Value is Python Regular Expression (UTF8-encoded)." |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
847 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
848 RE_TYPE = type(re.compile("")) |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
849 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
850 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
|
851 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
|
852 flags=0): |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
853 self.flags = flags |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
854 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
|
855 description, aliases) |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
856 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
857 def _value2str(self, value): |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
858 assert isinstance(value, self.RE_TYPE) |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
859 return value.pattern |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
860 |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
861 def str2value(self, value): |
|
5416
56c9bcdea47f
Python 3 preparation: unicode.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5395
diff
changeset
|
862 if not isinstance(value, type(u'')): |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
863 value = str(value) |
|
5416
56c9bcdea47f
Python 3 preparation: unicode.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5395
diff
changeset
|
864 if not isinstance(value, type(u'')): |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
865 # if it is 7-bit ascii, use it as string, |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
866 # otherwise convert to unicode. |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
867 try: |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
868 value.decode("ascii") |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
869 except UnicodeError: |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
870 value = value.decode("utf-8") |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
871 return re.compile(value, self.flags) |
|
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
872 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
873 ### Main configuration layout. |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
874 # Config is described as a sequence of sections, |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
875 # where each section name is followed by a sequence |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
876 # of Option definitions. Each Option definition |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
877 # is a sequence containing class name and constructor |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
878 # parameters, starting from the setting name: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
879 # 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
|
880 # 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
|
881 # 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
|
882 |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
883 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
884 SETTINGS = ( |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
885 ("main", ( |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
886 (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
|
887 (Option, "template_engine", "zopetal", |
|
a2eb4fb3e6d8
New Chameleon templating engine, engine is now configurable.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4570
diff
changeset
|
888 "Templating engine to use.\n" |
|
a2eb4fb3e6d8
New Chameleon templating engine, engine is now configurable.
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4570
diff
changeset
|
889 "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
|
890 "ported from Zope, or 'chameleon' for Chameleon."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
891 (FilePathOption, "templates", "html", |
|
2863
ae2907da636d
added STATIC_FILES option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2850
diff
changeset
|
892 "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
|
893 (MultiFilePathOption, "static_files", "", |
|
8743b7226dc7
Fix issue with retreiving raw template files using the @@file mechanism.
John Rouillard <rouilj@ieee.org>
parents:
5214
diff
changeset
|
894 "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
|
895 "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
|
896 "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
|
897 "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
|
898 "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
|
899 "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
|
900 "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
|
901 "files are taken from the TEMPLATES directory."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
902 (MailAddressOption, "admin_email", "roundup-admin", |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
903 "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
|
904 "into trouble.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
905 "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
|
906 "mail -> domain is added."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
907 (MailAddressOption, "dispatcher_email", "roundup-admin", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
908 "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
|
909 "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
|
910 "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
|
911 "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
|
912 "mail -> domain is added."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
913 (Option, "email_from_tag", "", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
914 "Additional text to include in the \"name\" part\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
915 "of the From: address used in nosy messages.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
916 "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
|
917 "is usually: \"Foo Bar\" <issue_tracker@tracker.example>\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
918 "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
|
919 "\"Foo Bar EMAIL_FROM_TAG\" <issue_tracker@tracker.example>"), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
920 (Option, "new_web_user_roles", "User", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
921 "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
|
922 " with Web User Interface.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
923 "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
|
924 " (e.g. 'Admin,User')."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
925 (Option, "new_email_user_roles", "User", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
926 "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
|
927 " with Email Gateway.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
928 "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
|
929 " (e.g. 'Admin,User')."), |
|
5315
5a014410f254
Fix issue2550954: History display breaks
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5305
diff
changeset
|
930 (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
|
931 "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
|
932 "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
|
933 "(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
|
934 "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
|
935 "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
|
936 "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
|
937 "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
|
938 (Option, "error_messages_to", "user", |
|
6211
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
939 '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
|
940 '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
|
941 'The dispatcher is configured using the DISPATCHER_EMAIL' |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
942 ' setting.'), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
943 (Option, "html_version", "html4", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
944 "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
|
945 "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
|
946 "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
|
947 "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
|
948 (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
|
949 "Default timezone offset," |
|
3620
17124caa2491
added timezone option (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3609
diff
changeset
|
950 " applied when user's timezone is not set.", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
951 ["DEFAULT_TIMEZONE"]), |
|
2649
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2646
diff
changeset
|
952 (BooleanOption, "instant_registration", "no", |
|
1df7d4a41da4
Buncha stuff (sorry about the large checkin):
Richard Jones <richard@users.sourceforge.net>
parents:
2646
diff
changeset
|
953 "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
|
954 "email?"), |
|
3469
d3b02352484f
enable registration confirmation by web only [SF#1381675]
Richard Jones <richard@users.sourceforge.net>
parents:
3452
diff
changeset
|
955 (BooleanOption, "email_registration_confirmation", "yes", |
|
d3b02352484f
enable registration confirmation by web only [SF#1381675]
Richard Jones <richard@users.sourceforge.net>
parents:
3452
diff
changeset
|
956 "Offer registration confirmation by email or only through the web?"), |
| 6358 | 957 (IndexerOption, "indexer", "", |
|
5096
e74c3611b138
- issue2550636, issue2550909: Added support for Whoosh indexer.
John Rouillard <rouilj@ieee.org>
parents:
5045
diff
changeset
|
958 "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
|
959 "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
|
960 "will be used in the following order:\n" |
|
6588
91ab3e0ffcd0
Summary: Add test cases for sqlite fts
John Rouillard <rouilj@ieee.org>
parents:
6584
diff
changeset
|
961 "Possible values: xapian, whoosh, native (internal), " |
|
91ab3e0ffcd0
Summary: Add test cases for sqlite fts
John Rouillard <rouilj@ieee.org>
parents:
6584
diff
changeset
|
962 "native-fts.\nNote 'native-fts' will only be used if set."), |
|
6353
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
963 (Option, "indexer_language", "english", |
|
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
964 "Used to determine what language should be used by the\n" |
|
6604
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
965 "indexer above. Applies to Xapian and PostgreSQL native-fts\n" |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
966 "indexer. It sets the language for the stemmer, and PostgreSQL\n" |
|
0d99ae7c8de6
Allow Roundup to use PostgreSQL database native full text search
John Rouillard <rouilj@ieee.org>
parents:
6588
diff
changeset
|
967 "native-fts stopwords and other dictionaries.\n" |
|
6353
9d209d2b34ae
Add indexer_language to change stemmer for xapian FTS indexer
John Rouillard <rouilj@ieee.org>
parents:
6333
diff
changeset
|
968 "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
|
969 "see indexer documentation for details."), |
|
3544
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
970 (WordListOption, "indexer_stopwords", "", |
|
5cd1c83dea50
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
3469
diff
changeset
|
971 "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
|
972 "your tracker. See the indexer source for the default list of\n" |
|
6588
91ab3e0ffcd0
Summary: Add test cases for sqlite fts
John Rouillard <rouilj@ieee.org>
parents:
6584
diff
changeset
|
973 "stop-words (eg. A,AND,ARE,AS,AT,BE,BUT,BY, ...). This is\n" |
|
91ab3e0ffcd0
Summary: Add test cases for sqlite fts
John Rouillard <rouilj@ieee.org>
parents:
6584
diff
changeset
|
974 "not used by the native-fts indexer."), |
|
5736
1b5bcc5d745f
Change umask default to python 3 (put python2 compatible) format with
John Rouillard <rouilj@ieee.org>
parents:
5732
diff
changeset
|
975 (OctalNumberOption, "umask", "0o002", |
|
3609
f2fda3e6fc8b
umask is now configurable (with the same 0002 default)
Richard Jones <richard@users.sourceforge.net>
parents:
3548
diff
changeset
|
976 "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
|
977 (IntegerNumberGeqZeroOption, 'csv_field_size', '131072', |
|
4255
88af08f8666f
New config option csv_field_size:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4088
diff
changeset
|
978 "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
|
979 "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
|
980 "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
|
981 "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
|
982 "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
|
983 "import."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
984 (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
|
985 "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
|
986 "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
|
987 "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
|
988 "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
|
989 "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
|
990 "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
|
991 "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
|
992 "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
|
993 "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
|
994 "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
|
995 "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
|
996 "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
|
997 "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
|
998 "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
|
999 "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
|
1000 )), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1001 ("tracker", ( |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1002 (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
|
1003 "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
|
1004 (WebUrlOption, "web", NODEFAULT, |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1005 "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
|
1006 "This will be included in information" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1007 " sent to users of the tracker.\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1008 "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
|
1009 "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
|
1010 "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
|
1011 (MailAddressOption, "email", "issue_tracker", |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1012 "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
|
1013 "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
|
1014 (Option, "replyto_address", "", |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
1015 "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
|
1016 "nosy messages.\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
1017 "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
|
1018 "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
|
1019 "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
|
1020 "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
|
1021 "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
|
1022 "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
|
1023 "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
|
1024 "unusual circumstances.\n" |
|
99e289359798
issue2550803: Replying to NOSY mail goes to the tracker through
John Rouillard <rouilj@ieee.org>
parents:
5096
diff
changeset
|
1025 "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
|
1026 "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
|
1027 "be able to reply."), |
|
2922
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1028 (NullableOption, "language", "", |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1029 "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
|
1030 "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
|
1031 "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
|
1032 "or LANG, in that order of preference."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1033 )), |
|
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
|
1034 ("web", ( |
|
4088
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
1035 (BooleanOption, "allow_html_file", "no", |
|
34434785f308
Plug a number of security holes:
Richard Jones <richard@users.sourceforge.net>
parents:
4074
diff
changeset
|
1036 "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
|
1037 "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
|
1038 "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
|
1039 "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
|
1040 (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
|
1041 "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
|
1042 "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
|
1043 "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
|
1044 "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
|
1045 "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
|
1046 "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
|
1047 (Option, "http_auth_header", "", |
|
1f2f7c0b8968
issue2550837 - New option for web auth (also http header passing)
John Rouillard <rouilj@ieee.org>
parents:
6363
diff
changeset
|
1048 "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
|
1049 "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
|
1050 "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
|
1051 "the user and passes the username using this HTTP header."), |
|
6458
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1052 (BooleanOption, "dynamic_compression", "yes", |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1053 "Setting this option makes roundup look at the Accept-Encoding\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1054 "header supplied by the client. It will compress the response\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1055 "on the fly using a common encoding. Disable it if your\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1056 "upstream server does compression of dynamic data."), |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1057 (BooleanOption, "use_precompressed_files", "no", |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1058 "Setting this option enables Roundup to serve precompressed\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1059 "static files. The admin must create the compressed files with\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1060 "proper extension (.gzip, .br, .zstd) in the same directory as\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1061 "the uncompressed file. If a precompressed file doesn't\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1062 "exist, the uncompressed file will be served possibly with\n" |
|
8f1b91756457
issue2551147 - Enable compression of http responses in roundup.
John Rouillard <rouilj@ieee.org>
parents:
6436
diff
changeset
|
1063 "dynamic compression."), |
|
6053
380dec305c28
Add config option 'http_auth_convert_realm_to_lowercase'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6004
diff
changeset
|
1064 (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
|
1065 "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
|
1066 "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
|
1067 "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
|
1068 "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
|
1069 "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
|
1070 "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
|
1071 "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
|
1072 "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
|
1073 "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
|
1074 "lowercase."), |
|
6211
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
1075 (BooleanOption, 'cookie_takes_precedence', "no", |
|
50960479f627
New config-option 'cookie_takes_precedence'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6152
diff
changeset
|
1076 "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
|
1077 "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
|
1078 "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
|
1079 "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
|
1080 "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
|
1081 "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
|
1082 "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
|
1083 "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
|
1084 "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
|
1085 (IntegerNumberGeqZeroOption, 'login_attempts_min', "3", |
|
5717
cad18de2b988
issue2550949: Rate limit password guesses/login attempts.
John Rouillard <rouilj@ieee.org>
parents:
5698
diff
changeset
|
1086 "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
|
1087 "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
|
1088 "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
|
1089 "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
|
1090 "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
|
1091 "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
|
1092 (IntegerNumberGeqZeroOption, 'registration_delay', "4", |
|
98a8509ce45c
issue2550919 - Anti-bot signup using 4 second delay
John Rouillard <rouilj@ieee.org>
parents:
5956
diff
changeset
|
1093 "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
|
1094 "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
|
1095 "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
|
1096 "the value to 0."), |
|
5976
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
1097 (BooleanOption, 'registration_prevalidate_username', "no", |
|
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
1098 "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
|
1099 "is available before sending confirmation email.\n" |
|
71c68961d9f4
- issue2550920 - Optionally detect duplicate username at registration.
John Rouillard <rouilj@ieee.org>
parents:
5974
diff
changeset
|
1100 "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
|
1101 "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
|
1102 "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
|
1103 (SameSiteSettingOption, 'samesite_cookie_setting', "Lax", |
|
d4cc71beb102
Added support for SameSite cookie option for CSRF prevention
John Rouillard <rouilj@ieee.org>
parents:
5201
diff
changeset
|
1104 """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
|
1105 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
|
1106 '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
|
1107 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
|
1108 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
|
1109 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
|
1110 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
|
1111 email)."""), |
|
5603
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
1112 (BooleanOption, 'enable_xmlrpc', "yes", |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
1113 """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
|
1114 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
|
1115 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
|
1116 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
|
1117 and will yield an error message."""), |
|
6658
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1118 (BooleanOption, 'translate_xmlrpc', 'no', |
|
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1119 """Whether to enable i18n for the xmlrpc endpoint. Enable it if |
|
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1120 you want to enable translation based on browsers lang (if enabled), trackers |
|
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1121 lang (if set) or environment."""), |
|
5603
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
1122 (BooleanOption, 'enable_rest', "yes", |
|
79da1ca2f94b
Make xmlrpc and rest APIs configurable
Ralf Schlatterbeck <rsc@runtux.com>
parents:
5517
diff
changeset
|
1123 """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
|
1124 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
|
1125 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
|
1126 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
|
1127 no special meaning and will yield an error message."""), |
|
6658
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1128 (BooleanOption, 'translate_rest', 'no', |
|
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1129 """Whether to enable i18n for the rest endpoint. Enable it if |
|
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1130 you want to enable translation based on browsers lang (if enabled), trackers |
|
408fd477761f
Add i18n object to roundupdb.Database
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6604
diff
changeset
|
1131 lang (if set) or environment."""), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1132 (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
|
1133 "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
|
1134 "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
|
1135 "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
|
1136 "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
|
1137 "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
|
1138 "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
|
1139 "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
|
1140 "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
|
1141 "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
|
1142 "documentation for more info.\n"), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1143 (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
|
1144 "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
|
1145 "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
|
1146 (CsrfSettingOption, 'csrf_enforce_token', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1147 """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
|
1148 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
|
1149 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
|
1150 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
|
1151 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
|
1152 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1153 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
|
1154 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
|
1155 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1156 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
|
1157 """), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1158 (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
|
1159 """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
|
1160 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
|
1161 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
|
1162 (CsrfSettingOption, 'csrf_enforce_token', "yes", |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1163 """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
|
1164 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
|
1165 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
|
1166 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
|
1167 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
|
1168 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1169 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
|
1170 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
|
1171 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1172 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
|
1173 """), |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1174 (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
|
1175 """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
|
1176 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
|
1177 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
|
1178 is ignored. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1179 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
|
1180 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
|
1181 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
|
1182 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
|
1183 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
|
1184 (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
|
1185 """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
|
1186 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
|
1187 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
|
1188 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
|
1189 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
|
1190 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
|
1191 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
|
1192 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
|
1193 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
|
1194 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1195 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
|
1196 (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
|
1197 """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
|
1198 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
|
1199 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
|
1200 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
|
1201 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
|
1202 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
|
1203 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1204 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
|
1205 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
|
1206 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1207 Set this to 'no' to ignore the header and accept the post."""), |
|
6681
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1208 (OriginHeadersListOption, 'allowed_api_origins', "", |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1209 """A comma separated list of additonal valid Origin header |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1210 values used when enforcing the header origin. They are used |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1211 only for the api URL's (/rest and /xmlrpc). They are not |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1212 used for the usual html URL's. These strings must match the |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1213 value of the Origin header exactly. So 'https://bar.edu' and |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1214 'https://Bar.edu' are two different Origin values. Note that |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1215 the origin value is scheme://host. There is no path |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1216 component. So 'https://bar.edu/' would never be valid. |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1217 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1218 You need to set these if you have a web application on a |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1219 different origin accessing your roundup instance. |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1220 |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1221 (The origin from the tracker.web setting in config.ini is |
|
ab2ed11c021e
issue2551205: Add support for specifying valid origins for api: xmlrpc/rest
John Rouillard <rouilj@ieee.org>
parents:
6658
diff
changeset
|
1222 always valid and does not need to be specified.)"""), |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1223 (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
|
1224 """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
|
1225 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
|
1226 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
|
1227 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
|
1228 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
|
1229 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
|
1230 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1231 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
|
1232 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
|
1233 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1234 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
|
1235 (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
|
1236 """"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
|
1237 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
|
1238 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
|
1239 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
|
1240 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
|
1241 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
|
1242 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
|
1243 the field is missing. |
|
5201
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1244 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
|
1245 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
|
1246 the post. |
|
a9ace22e0a2f
issue 2550690 - Adding anti-csrf measures to roundup following
John Rouillard <rouilj@ieee.org>
parents:
5189
diff
changeset
|
1247 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
|
1248 (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
|
1249 """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
|
1250 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
|
1251 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
|
1252 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
|
1253 (BooleanOption, 'use_browser_language', "yes", |
|
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1254 "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
|
1255 "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
|
1256 "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
|
1257 "Operating System.\n" |
|
2b27c92d64dc
add web/use_browser_language option
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3417
diff
changeset
|
1258 "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
|
1259 (BooleanOption, "debug", "no", |
|
61d48244e7a8
login may now be for a single session
Richard Jones <richard@users.sourceforge.net>
parents:
3544
diff
changeset
|
1260 "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
|
1261 "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
|
1262 "tracker admin."), |
|
4484
52e13bf0bb40
Add new config-option 'migrate_passwords' in section 'web'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4474
diff
changeset
|
1263 (BooleanOption, "migrate_passwords", "yes", |
|
52e13bf0bb40
Add new config-option 'migrate_passwords' in section 'web'...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4474
diff
changeset
|
1264 "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
|
1265 "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
|
1266 "when the user logs in via the web-interface."), |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1267 (SecretMandatoryOption, "secret_key", create_token(), |
|
5726
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1268 "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
|
1269 "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
|
1270 "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
|
1271 "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
|
1272 "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
|
1273 "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
|
1274 "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
|
1275 "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
|
1276 "(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
|
1277 " roundup-admin updateconfig\n" |
|
e199d0ae4a25
issue2551033: prevent reverse engineering hidden data by using etags
John Rouillard <rouilj@ieee.org>
parents:
5717
diff
changeset
|
1278 "is run, so it must be explicitly set to a non-empty string.\n"), |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1279 (SecretNullableOption, "jwt_secret", "disabled", |
|
5878
1b57d8f3eb97
Add rudimentery experiment JSON Web Token (jwt) support
John Rouillard <rouilj@ieee.org>
parents:
5809
diff
changeset
|
1280 "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
|
1281 "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
|
1282 "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
|
1283 "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
|
1284 "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
|
1285 "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
|
1286 "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
|
1287 )), |
|
2634
f47ca4541770
Both RDBMS backends now use the same config.ini section, [rdbms].
Richard Jones <richard@users.sourceforge.net>
parents:
2630
diff
changeset
|
1288 ("rdbms", ( |
|
5748
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
1289 (DatabaseBackend, 'backend', NODEFAULT, |
|
943e61bc26d5
Fix issue2551029 (Jinja2 template install error) by deleting
John Rouillard <rouilj@ieee.org>
parents:
5736
diff
changeset
|
1290 "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
|
1291 (Option, 'name', 'roundup', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1292 "Name of the database to use.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1293 ['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
|
1294 (NullableOption, 'host', 'localhost', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1295 "Database server host.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1296 ['MYSQL_DBHOST']), |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1297 (NullableOption, 'port', '', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1298 "TCP port number of the database server.\n" |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1299 "Postgresql usually resides on port 5432 (if any),\n" |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1300 "for MySQL default port number is 3306.\n" |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1301 "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
|
1302 (NullableOption, 'user', 'roundup', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1303 "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
|
1304 ['MYSQL_DBUSER']), |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1305 (SecretNullableOption, 'password', 'roundup', |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1306 "Database user password.", |
|
2636
943f9d4592b8
Backwards-compatibility aliases for mysql config.
Richard Jones <richard@users.sourceforge.net>
parents:
2634
diff
changeset
|
1307 ['MYSQL_DBPASSWORD']), |
|
3099
519b92df37dc
handle ~/.my.cnf files for MySQL defaults [SF#1096031]
Richard Jones <richard@users.sourceforge.net>
parents:
2922
diff
changeset
|
1308 (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
|
1309 "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
|
1310 "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
|
1311 (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
|
1312 "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
|
1313 "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
|
1314 (Option, 'mysql_charset', 'utf8mb4', |
|
6152
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1315 "Charset to use for mysql connection,\n" |
|
546763f4ce44
Make the charset configurable for mysql
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6126
diff
changeset
|
1316 "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
|
1317 "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
|
1318 "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
|
1319 "Only used in MySQL connections."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1320 (IntegerNumberGeqZeroOption, 'sqlite_timeout', '30', |
|
4415
3e35233ea93c
new rdbms config item sqlite_timeout...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4411
diff
changeset
|
1321 "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
|
1322 "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
|
1323 "Only used in SQLite connections."), |
|
5774
765f8c0e99ef
Sanity checking improvements. All IntegerNumberOption really have to
John Rouillard <rouilj@ieee.org>
parents:
5773
diff
changeset
|
1324 (IntegerNumberGeqZeroOption, 'cache_size', '100', |
|
4074
e039f3cbbb96
Make RDBMS cache-size configurable.
Stefan Seefeld <stefan@seefeld.name>
parents:
4013
diff
changeset
|
1325 "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
|
1326 (BooleanOption, "allow_create", "yes", |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1327 "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
|
1328 (BooleanOption, "allow_alter", "yes", |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1329 "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
|
1330 (BooleanOption, "allow_drop", "yes", |
|
9b4cf6c96ee2
Add flags to allow to restrict DB modifications.
Stefan Seefeld <stefan@seefeld.name>
parents:
4471
diff
changeset
|
1331 "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
|
1332 (NullableOption, 'template', '', |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1333 "Name of the PostgreSQL template for database creation.\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1334 "For database creation the template used has to match\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1335 "the character encoding used (UTF8), there are different\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1336 "PostgreSQL installations using different templates with\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1337 "different encodings. If you get an error:\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1338 " new encoding (UTF8) is incompatible with the encoding of\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1339 " the template database (SQL_ASCII)\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1340 " HINT: Use the same encoding as in the template database,\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1341 " or use template0 as template.\n" |
|
4f353d71d716
Configuration issue:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4424
diff
changeset
|
1342 "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
|
1343 "error message."), |
|
4887
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1344 (IsolationOption, 'isolation_level', 'read committed', |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1345 "Database isolation level, currently supported for\n" |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1346 "PostgreSQL and mysql. See, e.g.,\n" |
|
05c857e5dbed
New rdbms configuration option 'isolation_level'
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4786
diff
changeset
|
1347 "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
|
1348 (BooleanOption, "serverside_cursor", "yes", |
|
6a6b4651be1f
Use server-side cursor for postgres in some cases
Ralf Schlatterbeck <rsc@runtux.com>
parents:
6300
diff
changeset
|
1349 "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
|
1350 "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
|
1351 "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
|
1352 ), "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
|
1353 " by RDBMS backends only." |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1354 ), |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1355 ("logging", ( |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1356 (FilePathOption, "config", "", |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1357 "Path to configuration file for standard Python logging module.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1358 "If this option is set, logging configuration is loaded\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1359 "from specified file; options 'filename' and 'level'\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1360 "in this section are ignored."), |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1361 (FilePathOption, "filename", "", |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1362 "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
|
1363 "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
|
1364 "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
|
1365 (Option, "level", "ERROR", |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1366 "Minimal severity level of messages written to log file.\n" |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
1367 "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
|
1368 "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
|
1369 (BooleanOption, "disable_loggers", "no", |
|
94c415c7cd36
Make gunicorn --access-logfile work with custom logging config
John Rouillard <rouilj@ieee.org>
parents:
5878
diff
changeset
|
1370 "If set to yes, only the loggers configured in this section will\n" |
| 5956 | 1371 "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
|
1372 )), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1373 ("mail", ( |
|
4013
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1374 (Option, "domain", NODEFAULT, |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1375 "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
|
1376 "dispatcher_email belong to.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1377 "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
|
1378 "explicitly include a domain.\n" |
|
a5b68d46bce8
Try to clarify mail_domain config setting
Richard Jones <richard@users.sourceforge.net>
parents:
3945
diff
changeset
|
1379 "Do not include the '@' symbol."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1380 (Option, "host", NODEFAULT, |
|
2844
5dddfc64816d
mailgw backward-compatibility: "MAILHOST" alias for "MAIL_HOST"
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2839
diff
changeset
|
1381 "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
|
1382 ["MAILHOST"],), |
|
2630
a65bae7af6d1
NOSY_MESSAGES_TO_AUTHOR is RunDetectorOption (values: yes, no, new)...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2629
diff
changeset
|
1383 (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
|
1384 "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
|
1385 "If username is not empty, password (below) MUST be set!"), |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1386 (SecretMandatoryOption, "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
|
1387 "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
|
1388 (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
|
1389 "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
|
1390 "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
|
1391 (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
|
1392 "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
|
1393 "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
|
1394 (BooleanOption, "tls", "no", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1395 "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
|
1396 "(Transport Layer Security) then set this option to 'yes'."), |
|
2624
f40d5f0f1086
added NullableOption, NullableFilePathOption;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2623
diff
changeset
|
1397 (NullableFilePathOption, "tls_keyfile", "", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1398 "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
|
1399 "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
|
1400 (NullableFilePathOption, "tls_certfile", "", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1401 "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
|
1402 "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
|
1403 (Option, "charset", "utf-8", |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1404 "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
|
1405 "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
|
1406 "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
|
1407 "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
|
1408 "(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
|
1409 ["EMAIL_CHARSET"]), |
|
ce6a965a86f4
Move around some option groupings as I see them.
Richard Jones <richard@users.sourceforge.net>
parents:
2625
diff
changeset
|
1410 (FilePathOption, "debug", "", |
|
5214
4c48180555fb
Fix text formatting, typos and, English grammar of the descriptive text.
John Rouillard <rouilj@ieee.org>
parents:
5212
diff
changeset
|
1411 "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
|
1412 "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
|
1413 "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
|
1414 " 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
|
1415 (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
|
1416 "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
|
1417 "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
|
1418 (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
|
1419 "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
|
1420 "the top of all messages.\n" |
|
454ee9411e85
Fix truncated comment for add_authoremail option.
Erik Forsberg <forsberg@users.sourceforge.net>
parents:
3878
diff
changeset
|
1421 "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
|
1422 "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
|
1423 "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
|
1424 ), "Outgoing email options.\n" |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1425 "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
|
1426 ("mailgw", ( |
|
5117
14abd0a67207
Fix issue934009: Have New Issues Submitted By Email *Not* Change Body!
John Rouillard <rouilj@ieee.org>
parents:
5102
diff
changeset
|
1427 (EmailBodyOption, "keep_quoted_text", "yes", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1428 "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
|
1429 "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
|
1430 "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
|
1431 "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
|
1432 "Signatures are also stripped.", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1433 ["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
|
1434 (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
|
1435 "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
|
1436 "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
|
1437 "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
|
1438 "creating a new issue.", |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1439 ["EMAIL_LEAVE_BODY_UNCHANGED"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1440 (Option, "default_class", "issue", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1441 "Default class to use in the mailgw\n" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1442 "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
|
1443 "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
|
1444 ["MAIL_DEFAULT_CLASS"]), |
|
2922
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1445 (NullableOption, "language", "", |
|
9d2c5d7c6f85
added CoreConfig options TRACKER_LANGUAGE and MAILGW_LANGUAGE
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2906
diff
changeset
|
1446 "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
|
1447 "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
|
1448 "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
|
1449 (Option, "subject_prefix_parsing", "strict", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1450 "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
|
1451 "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
|
1452 "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
|
1453 "\"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
|
1454 "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
|
1455 "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
|
1456 "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
|
1457 (Option, "subject_suffix_parsing", "strict", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1458 "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
|
1459 "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
|
1460 "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
|
1461 "\"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
|
1462 "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
|
1463 "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
|
1464 "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
|
1465 (Option, "subject_suffix_delimiters", "[]", |
|
3725
65badf6ab7ad
fix config documentation
Richard Jones <richard@users.sourceforge.net>
parents:
3620
diff
changeset
|
1466 "Defines the brackets used for delimiting the prefix and \n" |
|
65badf6ab7ad
fix config documentation
Richard Jones <richard@users.sourceforge.net>
parents:
3620
diff
changeset
|
1467 '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
|
1468 "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
|
1469 "be ignored."), |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1470 (Option, "subject_content_match", "always", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1471 "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
|
1472 "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
|
1473 "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
|
1474 "\"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
|
1475 "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
|
1476 "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
|
1477 "Roundup interval."), |
|
4405
863ec554525c
new mailgw config option subject_updates_title...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4342
diff
changeset
|
1478 (BooleanOption, "subject_updates_title", "yes", |
|
863ec554525c
new mailgw config option subject_updates_title...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4342
diff
changeset
|
1479 "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
|
1480 "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
|
1481 " the subject\nof incoming email messages.\n"), |
| 5809 | 1482 (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
|
1483 "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
|
1484 "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
|
1485 "stripped from the subject during parsing."), |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
1486 (RegExpOption, "origmsg_re", |
| 5809 | 1487 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
|
1488 "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
|
1489 "if quoted the in body."), |
| 5809 | 1490 (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
|
1491 "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
|
1492 "in the message body."), |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
1493 (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
|
1494 "Regular expression matching end of line."), |
|
3835
b66615f3007b
added RegExpOption
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3831
diff
changeset
|
1495 (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
|
1496 "Regular expression matching a blank line."), |
|
4424
f1affb6b7a08
Mail gateway fixes and improvements.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4415
diff
changeset
|
1497 (BooleanOption, "unpack_rfc822", "no", |
|
f1affb6b7a08
Mail gateway fixes and improvements.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4415
diff
changeset
|
1498 "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
|
1499 "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
|
1500 "set we handle message/rfc822 attachments as a single file."), |
|
3945
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1501 (BooleanOption, "ignore_alternatives", "no", |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1502 "When parsing incoming mails, roundup uses the first\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1503 "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
|
1504 "multipart/alternative, and this option is set, all other\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1505 "parts of the multipart/alternative are ignored. The default\n" |
|
1dd64778bc45
Mail improvements:
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3922
diff
changeset
|
1506 "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
|
1507 (HtmlToTextOption, "convert_htmltotext", "none", |
|
e20f472fde7d
issue2550799: provide basic support for handling html only emails
John Rouillard <rouilj@ieee.org>
parents:
5264
diff
changeset
|
1508 "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
|
1509 "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
|
1510 "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
|
1511 "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
|
1512 "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
|
1513 "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
|
1514 "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
|
1515 (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
|
1516 "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
|
1517 "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
|
1518 "(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
|
1519 "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
|
1520 ["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
|
1521 ), "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
|
1522 ("pgp", ( |
|
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1523 (BooleanOption, "enable", "no", |
|
5494
b7fa56ced601
use gpg module instead of pyme module for PGP encryption
Christof Meerwald <cmeerw@cmeerw.org>
parents:
5424
diff
changeset
|
1524 "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
|
1525 "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
|
1526 "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
|
1527 "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
|
1528 (NullableOption, "roles", "", |
|
586679a314f7
role checking for PGP mail and docs
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3915
diff
changeset
|
1529 "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
|
1530 "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
|
1531 "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
|
1532 "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
|
1533 "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
|
1534 "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
|
1535 "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
|
1536 (NullableOption, "homedir", "", |
|
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1537 "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
|
1538 "not specified."), |
|
4541
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1539 (BooleanOption, "encrypt", "no", |
|
62239a524beb
PGP support is again working (pyme API has changed significantly)...
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
4488
diff
changeset
|
1540 "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
|
1541 "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
|
1542 "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
|
1543 "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
|
1544 "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
|
1545 "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
|
1546 (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
|
1547 "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
|
1548 "'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
|
1549 "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
|
1550 "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
|
1551 "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
|
1552 "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
|
1553 "turned on."), |
|
3915
6b3919328381
support for receiving OpenPGP MIME messages (signed or encrypted)
Justus Pendleton <jpend@users.sourceforge.net>
parents:
3882
diff
changeset
|
1554 ), "OpenPGP mail processing options"), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1555 ("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
|
1556 (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
|
1557 "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
|
1558 "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
|
1559 "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
|
1560 "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
|
1561 "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
|
1562 ["MESSAGES_TO_AUTHOR"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1563 (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
|
1564 "Where to place the email signature.\n" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1565 "Allowed values: top, bottom, none", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1566 ["EMAIL_SIGNATURE_POSITION"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1567 (RunDetectorOption, "add_author", "new", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1568 "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
|
1569 "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
|
1570 "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
|
1571 "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
|
1572 "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
|
1573 ["ADD_AUTHOR_TO_NOSY"]), |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1574 (RunDetectorOption, "add_recipients", "new", |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1575 "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
|
1576 "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
|
1577 "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
|
1578 "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
|
1579 "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
|
1580 ["ADD_RECIPIENTS_TO_NOSY"]), |
|
3417
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1581 (Option, "email_sending", "single", |
|
07c696890f55
mailgw subject parsing has configurable levels of strictness
Richard Jones <richard@users.sourceforge.net>
parents:
3356
diff
changeset
|
1582 "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
|
1583 "\"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
|
1584 "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
|
1585 "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
|
1586 (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
|
1587 "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
|
1588 "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
|
1589 "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
|
1590 ), "Nosy messages sending"), |
|
6277
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1591 ("markdown", ( |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1592 (BooleanOption, "break_on_newline", "no", |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1593 "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
|
1594 "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
|
1595 "(GFM) handling of embedded newlines."), |
|
957a0fc20021
issue2551094 - markdown mismatch - new config for embedded newine
John Rouillard <rouilj@ieee.org>
parents:
6211
diff
changeset
|
1596 ), "Markdown rendering options."), |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1597 ) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1598 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1599 ### Configuration classes |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1600 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1601 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1602 class Config: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1603 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1604 """Base class for configuration objects. |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1605 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1606 Configuration options may be accessed as attributes or items |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1607 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
|
1608 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1609 """ |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1610 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1611 # Config file name |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1612 INI_FILE = "config.ini" |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1613 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1614 # 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
|
1615 # 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
|
1616 # 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
|
1617 HOME = "." |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1618 # names of .ini file sections, in order |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1619 sections = None |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1620 # section comments |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1621 section_descriptions = None |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1622 # lists of option names for each section, in order |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1623 section_options = None |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1624 # mapping from option names and aliases to Option instances |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1625 options = None |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1626 # actual name of the config file. set on load. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1627 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
|
1628 |
|
6584
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1629 # List of option names that need additional validation after |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1630 # all options are loaded. |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1631 option_validators = [] |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1632 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1633 def __init__(self, config_path=None, layout=None, settings=None): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1634 """Initialize confing instance |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1635 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1636 Parameters: |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1637 config_path: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1638 optional directory or file name of the config file. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1639 If passed, load the config after processing layout (if any). |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1640 If config_path is a directory name, use default base name |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1641 of the config file. |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1642 layout: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1643 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
|
1644 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
|
1645 settings: |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1646 optional setting overrides (dictionary). |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1647 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
|
1648 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1649 """ |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1650 if settings is None: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
1651 settings = {} |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1652 # initialize option containers: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1653 self.sections = [] |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1654 self.section_descriptions = {} |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1655 self.section_options = {} |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1656 self.options = {} |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1657 # 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
|
1658 if layout: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1659 for section in layout: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1660 self.add_section(*section) |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1661 if config_path is not None: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1662 self.load(config_path) |
|
3431
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1663 for (name, value) in settings.items(): |
|
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
1664 self[name.upper()] = value |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1665 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1666 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
|
1667 """Define new config section |
|
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 Parameters: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1670 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
|
1671 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
|
1672 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
|
1673 containing class object and constructor |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1674 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
|
1675 setting, default, [description, [aliases]] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1676 description - optional section comment |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1677 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1678 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
|
1679 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
|
1680 *not* have aliases! |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1681 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1682 """ |
|
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
|
1683 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
|
1684 self.section_descriptions[section] = description |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1685 for option_def in options: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1686 klass = option_def[0] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1687 args = option_def[1:] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1688 option = klass(self, section, *args) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1689 self.add_option(option) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1690 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1691 def add_option(self, option): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1692 """Adopt a new Option object""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1693 _section = option.section |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1694 _name = option.setting |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1695 if _section not in self.sections: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1696 self.sections.append(_section) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1697 _options = self._get_section_options(_section) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1698 if _name not in _options: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1699 _options.append(_name) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1700 # (section, name) key is used for writing .ini file |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1701 self.options[(_section, _name)] = option |
|
4074
e039f3cbbb96
Make RDBMS cache-size configurable.
Stefan Seefeld <stefan@seefeld.name>
parents:
4013
diff
changeset
|
1702 # 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
|
1703 for _name in option.aliases: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1704 self.options[_name] = option |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1705 |
|
6584
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1706 if hasattr(option, 'validate'): |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1707 self.option_validators.append(option.name) |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
1708 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1709 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
|
1710 default=NODEFAULT, description=None): |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1711 """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
|
1712 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1713 Parameters: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1714 name: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1715 option name |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1716 klass: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1717 one of the Option classes |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1718 default: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1719 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
|
1720 description: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1721 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
|
1722 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1723 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
|
1724 is done via string representation. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1725 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1726 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
|
1727 to options autocreated by UserConfig. |
|
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 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1730 # fetch current option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1731 option = self._get_option(name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1732 # compute constructor parameters |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1733 if default is NODEFAULT: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1734 default = option.default |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1735 if description is None: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1736 description = option.description |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1737 value = option.value2str(current=1) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1738 # resurrect the option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1739 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
|
1740 default=default, description=description) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1741 # apply the value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1742 option.set(value) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1743 # incorporate new option |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1744 del self[name] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1745 self.add_option(option) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1746 |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1747 def reset(self): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1748 """Set all options to their default values""" |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1749 for _option in self.items(): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1750 _option.reset() |
|
2646
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 # Meant for commandline tools. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1753 # 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
|
1754 # roundup-server -p 8017 -u roundup --save-config |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1755 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
|
1756 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
|
1757 """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
|
1758 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1759 Parameters: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1760 args: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1761 command line to parse (sys.argv[1:]) |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1762 short_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1763 optional string of letters for command line options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1764 that are not config options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1765 long_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1766 optional list of names for long options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1767 that are not config options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1768 config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1769 two-element sequence (letter, long_option) defining |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1770 the options for config file. If unset, don't load |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1771 config file; otherwise config file is read prior |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1772 to applying other options. Short option letter |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1773 must not have a colon and long_option name must |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1774 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
|
1775 options: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1776 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
|
1777 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
|
1778 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
|
1779 (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
|
1780 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
|
1781 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
|
1782 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1783 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
|
1784 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
|
1785 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1786 """ |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1787 # take a copy of long_options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1788 long_options = list(long_options) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1789 # build option lists |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1790 cfg_names = {} |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1791 booleans = [] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1792 for (name, letter) in options.items(): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1793 cfg_name = name.upper() |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1794 short_opt = "-" + letter[0] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1795 name = name.lower().replace("_", "-") |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1796 cfg_names.update({short_opt: cfg_name, "--" + name: cfg_name}) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1797 |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1798 short_options += letter |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1799 if letter[-1] == ":": |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1800 long_options.append(name + "=") |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1801 else: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1802 booleans.append(short_opt) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1803 long_options.append(name) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1804 |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1805 if config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1806 short_options += config_load_options[0] + ":" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1807 long_options.append(config_load_options[1] + "=") |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1808 # compute names that will be searched in getopt return value |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1809 config_load_options = ( |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1810 "-" + config_load_options[0], |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1811 "--" + config_load_options[1], |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1812 ) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1813 # parse command line arguments |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1814 optlist, args = getopt.getopt(args, short_options, long_options) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1815 # load config file if requested |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1816 if config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1817 for option in optlist: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1818 if option[0] in config_load_options: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1819 self.load_ini(option[1]) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1820 optlist.remove(option) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1821 break |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1822 # apply options |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1823 extra_options = [] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1824 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
|
1825 if (opt in booleans): # and not arg |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1826 arg = "yes" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1827 try: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1828 name = cfg_names[opt] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1829 except KeyError: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1830 extra_options.append((opt, arg)) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1831 else: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1832 self[name] = arg |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1833 return (extra_options, args) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1834 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1835 # 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
|
1836 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1837 def _get_option(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1838 try: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1839 return self.options[name] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1840 except KeyError: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1841 raise InvalidOptionError(name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1842 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1843 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
|
1844 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
|
1845 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1846 def _get_unset_options(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1847 """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
|
1848 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1849 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
|
1850 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
|
1851 appear in the config file. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1852 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1853 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1854 need_set = {} |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1855 for option in self.items(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1856 if not option.isset(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1857 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
|
1858 return need_set |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1859 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1860 def _adjust_options(self, config): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1861 """Load ad-hoc option definitions from ConfigParser instance.""" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1862 pass |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1863 |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1864 def _get_name(self): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1865 """Return the service name for config file heading""" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1866 return "" |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1867 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1868 # file operations |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1869 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1870 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
|
1871 """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
|
1872 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1873 Parameters: |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1874 config_path: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1875 directory or file name of the config file. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1876 If config_path is a directory name, use default |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1877 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
|
1878 defaults: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1879 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
|
1880 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1881 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
|
1882 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
|
1883 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1884 """ |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1885 if os.path.isdir(config_path): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1886 home_dir = config_path |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1887 config_path = os.path.join(config_path, self.INI_FILE) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1888 else: |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1889 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
|
1890 # parse the file |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1891 config_defaults = {"HOME": home_dir} |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1892 if defaults: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1893 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
|
1894 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
|
1895 config.read([config_path]) |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1896 # .ini file loaded ok. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1897 self.HOME = home_dir |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1898 self.filepath = config_path |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1899 self._adjust_options(config) |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1900 # 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
|
1901 self.reset() |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1902 for option in self.items(): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1903 option.load_ini(config) |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1904 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1905 def load(self, home_dir): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1906 """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
|
1907 self.load_ini(home_dir) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1908 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1909 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
|
1910 """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
|
1911 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1912 '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
|
1913 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
|
1914 HOME is created. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1915 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1916 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
|
1917 extension. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1918 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1919 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1920 if ini_file is None: |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1921 ini_file = self.filepath |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1922 _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
|
1923 _bak_file = _tmp_file + ".bak" |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1924 _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
|
1925 _fp = open(_tmp_file, "wt") |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
1926 _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
|
1927 _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
|
1928 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
|
1929 if need_set: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1930 _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
|
1931 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
|
1932 _fp.write("# [%s]: %s\n" % (section, ", ".join(options))) |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1933 for section in self.sections: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1934 comment = self.section_descriptions.get(section, None) |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1935 if comment: |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1936 _fp.write("\n# ".join([""] + comment.split("\n")) + "\n") |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1937 else: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1938 # no section comment - just leave a blank line between sections |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1939 _fp.write("\n") |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1940 _fp.write("[%s]\n" % section) |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1941 for option in self._get_section_options(section): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
1942 _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
|
1943 _fp.close() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1944 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
|
1945 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
|
1946 os.remove(_bak_file) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1947 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
|
1948 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
|
1949 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1950 # container emulation |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1951 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1952 def __len__(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1953 return len(self.items()) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1954 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1955 def __getitem__(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1956 if name == "HOME": |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1957 return self.HOME |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1958 else: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1959 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
|
1960 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1961 def __setitem__(self, name, value): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1962 if name == "HOME": |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1963 self.HOME = value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1964 else: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1965 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
|
1966 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1967 def __delitem__(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1968 _option = self._get_option(name) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1969 _section = _option.section |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1970 _name = _option.setting |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1971 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
|
1972 del self.options[(_section, _name)] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1973 for _alias in _option.aliases: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1974 del self.options[_alias] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1975 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1976 def items(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1977 """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
|
1978 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1979 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
|
1980 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
|
1981 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
|
1982 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1983 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1984 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
|
1985 for _section in self.sections |
|
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
1986 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
|
1987 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1988 def keys(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1989 """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
|
1990 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1991 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
|
1992 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1993 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1994 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
|
1995 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1996 # .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
|
1997 # 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
|
1998 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
1999 # attribute emulation |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2000 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2001 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
|
2002 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
|
2003 self.__dict__[name] = value |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2004 else: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2005 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
|
2006 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2007 # 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
|
2008 # 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
|
2009 def __getattr__(self, name): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2010 return self[name] |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2011 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
2012 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2013 class UserConfig(Config): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2014 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2015 """Configuration for user extensions. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2016 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2017 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
|
2018 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
|
2019 config file. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2020 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2021 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2022 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2023 def _adjust_options(self, config): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2024 # config defaults appear in all sections. |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2025 # 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
|
2026 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
|
2027 # 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
|
2028 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
|
2029 for section in config.sections(): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2030 for name in config.options(section): |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2031 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
|
2032 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
|
2033 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
|
2034 |
|
6004
55f5060e0508
flake8 formatting fixes; use isinstance rather than type equality.
John Rouillard <rouilj@ieee.org>
parents:
5976
diff
changeset
|
2035 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2036 class CoreConfig(Config): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2037 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2038 """Roundup instance configuration. |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2039 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2040 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
|
2041 two additional attributes: |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2042 detectors: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2043 user-defined configuration for detectors |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2044 ext: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2045 user-defined configuration for extensions |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2046 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2047 """ |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2048 |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2049 # user configs |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2050 ext = None |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2051 detectors = None |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2052 |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
2053 def __init__(self, home_dir=None, settings=None): |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
2054 if settings is None: |
|
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
2055 settings = {} |
|
3431
26dc6b92ac26
Config, CoreConfig: accept setting overrides in constructor
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3425
diff
changeset
|
2056 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
|
2057 # 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
|
2058 if home_dir is None: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2059 self.init_logging() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2060 |
|
4342
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
2061 def copy(self): |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
2062 new = CoreConfig() |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
2063 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
|
2064 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
|
2065 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
|
2066 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
|
2067 return new |
|
94c992852f12
add in-memory hyperdb implementation to speed up testing
Richard Jones <richard@users.sourceforge.net>
parents:
4337
diff
changeset
|
2068 |
|
2654
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2069 def _get_unset_options(self): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2070 need_set = Config._get_unset_options(self) |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2071 # remove MAIL_PASSWORD if MAIL_USER is empty |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2072 if "password" in need_set.get("mail", []): |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2073 if not self["MAIL_USERNAME"]: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2074 settings = need_set["mail"] |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2075 settings.remove("password") |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2076 if not settings: |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2077 del need_set["mail"] |
|
eccb8e15a83f
implemented section comments;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2649
diff
changeset
|
2078 return need_set |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2079 |
|
2770
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2080 def _get_name(self): |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2081 return self["TRACKER_NAME"] |
|
cdf6787ffeda
implement getopt().
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2654
diff
changeset
|
2082 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2083 def reset(self): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2084 Config.reset(self) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2085 if self.ext: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2086 self.ext.reset() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2087 if self.detectors: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2088 self.detectors.reset() |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
2089 self.init_logging() |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
2090 |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
2091 def init_logging(self): |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
2092 _file = self["LOGGING_CONFIG"] |
|
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
2093 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
|
2094 logging.config.fileConfig(_file, |
|
94c415c7cd36
Make gunicorn --access-logfile work with custom logging config
John Rouillard <rouilj@ieee.org>
parents:
5878
diff
changeset
|
2095 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
|
2096 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
|
2097 |
|
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
|
2098 _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
|
2099 # 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
|
2100 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
|
2101 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
|
2102 hdlr = logging.FileHandler(_file) |
|
2619
4b4ca3bd086b
added logging support;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2618
diff
changeset
|
2103 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
|
2104 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
|
2105 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
|
2106 '%(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
|
2107 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
|
2108 # 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
|
2109 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
|
2110 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
|
2111 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
|
2112 logger.handlers = [hdlr] |
|
5424
fd0481aa17b8
Python 3 preparation: avoid logging._levelNames.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5416
diff
changeset
|
2113 logger.setLevel(self["LOGGING_LEVEL"] or "ERROR") |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2114 |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2115 def validator(self, options): |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2116 """ Validate options once all options are loaded. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2117 |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2118 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
|
2119 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
|
2120 validated if xapian indexer is used. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2121 """ |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2122 |
|
6584
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
2123 for option in self.option_validators: |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
2124 # validate() should throw an exception if there is an issue. |
|
770503bd211e
Validate SecretOption and support validate method
John Rouillard <rouilj@ieee.org>
parents:
6578
diff
changeset
|
2125 options[option].validate(options) |
|
6578
b1f1539c6a31
issue2551182 - ... allow loading values from external file. flake8 cleanups
John Rouillard <rouilj@ieee.org>
parents:
6562
diff
changeset
|
2126 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2127 def load(self, home_dir): |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2128 """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
|
2129 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
|
2130 self.load_ini(home_dir) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2131 else: |
|
6300
778a9f455067
Remove old code import imp, old style trackers db/backend_name
John Rouillard <rouilj@ieee.org>
parents:
6277
diff
changeset
|
2132 raise NoConfigError(home_dir) |
|
6356
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2133 |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2134 # validator does inter-setting validation checks. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2135 # when there are dependencies between options. |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2136 self.validator(self.options) |
|
c26b9ce33ae3
issue2551123 - validate indexer_language in configuration.py
John Rouillard <rouilj@ieee.org>
parents:
6355
diff
changeset
|
2137 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2138 self.init_logging() |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2139 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
|
2140 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
|
2141 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2142 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
|
2143 """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
|
2144 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
|
2145 if defaults: |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2146 config_defaults.update(defaults) |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2147 Config.load_ini(self, home_dir, config_defaults) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2148 |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2149 # 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
|
2150 def __getitem__(self, name): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2151 if name == "TRACKER_HOME": |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2152 return self.HOME |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2153 else: |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2154 return Config.__getitem__(self, name) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2155 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2156 def __setitem__(self, name, value): |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2157 if name == "TRACKER_HOME": |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2158 self.HOME = value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2159 else: |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2160 self._get_option(name).set(value) |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2161 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2162 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
|
2163 if name == "TRACKER_HOME": |
|
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2164 self.__dict__["HOME"] = value |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2165 else: |
|
2646
fd7b2fc1eb28
Config is now base class for all configurations...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2637
diff
changeset
|
2166 Config.__setattr__(self, name, value) |
|
2618
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2167 |
|
8b08558e30a0
Roundup Issue Tracker configuration support
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2168 # vim: set et sts=4 sw=4 : |
