Skip to content

Commit 681a0ce

Browse files
committed
Merge branch 'feature/settings-get-object' into develop
Closes: #336
2 parents f4a5cd2 + 0eac963 commit 681a0ce

File tree

5 files changed

+17
-8
lines changed

5 files changed

+17
-8
lines changed

mfr/extensions/pdb/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
config = settings.child('PDB_EXTENSION_CONFIG')
44

5-
OPTIONS = config.get('OPTIONS', {
5+
OPTIONS = config.get_object('OPTIONS', {
66
'width': 'auto',
77
'height': '400',
88
'antialias': True,

mfr/extensions/tabular/settings.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
TABLE_WIDTH = int(config.get('TABLE_WIDTH', 700))
1010
TABLE_HEIGHT = int(config.get('TABLE_HEIGHT', 600))
1111

12-
LIBS = config.get('LIBS', {
12+
LIBS = config.get_object('LIBS', {
1313
'.csv': [libs.csv_stdlib],
1414
'.tsv': [libs.csv_stdlib],
1515
'.gsheet': [libs.xlsx_xlrd],
@@ -21,15 +21,15 @@
2121
# '.ods': [libs.ods_ezodf],
2222
})
2323

24-
SMALL_TABLE = config.get('SMALL_TABLE', {
24+
SMALL_TABLE = config.get_object('SMALL_TABLE', {
2525
'enableCellNavigation': True,
2626
'enableColumnReorder': False,
2727
'forceFitColumns': True,
2828
'syncColumnCellResize': True,
2929
'multiColumnSort': True,
3030
})
3131

32-
BIG_TABLE = config.get('BIG_TABLE', {
32+
BIG_TABLE = config.get_object('BIG_TABLE', {
3333
'enableCellNavigation': True,
3434
'enableColumnReorder': False,
3535
'syncColumnCellResize': True,

mfr/extensions/unoconv/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
DEFAULT_RENDER = {'renderer': '.pdf', 'format': 'pdf'}
1515

16-
RENDER_MAP = config.get('RENDER_MAP', {
16+
RENDER_MAP = config.get_object('RENDER_MAP', {
1717
# 'csv': {'renderer': '.xlsx', 'format': 'xlsx'},
1818
# 'ppt': {'renderer': '.pdf', 'format': 'pdf'},
1919
# 'pptx': {'renderer': '.pdf', 'format': 'pdf'},

mfr/server/settings.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727

2828
CACHE_ENABLED = config.get_bool('CACHE_ENABLED', False)
2929
CACHE_PROVIDER_NAME = config.get('CACHE_PROVIDER_NAME', 'filesystem')
30-
CACHE_PROVIDER_SETTINGS = config.get('CACHE_PROVIDER_SETTINGS', {'folder': '/tmp/mfr/'})
31-
CACHE_PROVIDER_CREDENTIALS = config.get('CACHE_PROVIDER_CREDENTIALS', {})
30+
CACHE_PROVIDER_SETTINGS = config.get_object('CACHE_PROVIDER_SETTINGS', {'folder': '/tmp/mfr/'})
31+
CACHE_PROVIDER_CREDENTIALS = config.get_object('CACHE_PROVIDER_CREDENTIALS', {})
3232

33-
LOCAL_CACHE_PROVIDER_SETTINGS = config.get('LOCAL_CACHE_PROVIDER_SETTINGS', {'folder': '/tmp/mfrlocalcache/'})
33+
LOCAL_CACHE_PROVIDER_SETTINGS = config.get_object('LOCAL_CACHE_PROVIDER_SETTINGS', {'folder': '/tmp/mfrlocalcache/'})
3434

3535
ALLOWED_PROVIDER_DOMAINS = config.get('ALLOWED_PROVIDER_DOMAINS', 'http://localhost:5000/ http://localhost:7777/').split(' ')
3636
ALLOWED_PROVIDER_NETLOCS = []

mfr/settings.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ def get_nullable(self, key, default=None):
6969
value = self.get(key, default)
7070
return None if value == '' else value
7171

72+
def get_object(self, key, default=None):
73+
"""Fetch a config value and interpret as a Python object or list. Since envvars are
74+
always strings, interpret values of type `str` as JSON object or array. Otherwise assume
75+
the type is already a python object."""
76+
value = self.get(key, default)
77+
if isinstance(value, str):
78+
value = json.loads(value)
79+
return value
80+
7281
def full_key(self, key):
7382
"""The name of the envvar which corresponds to this key."""
7483
return '{}_{}'.format(self.parent, key) if self.parent else key

0 commit comments

Comments
 (0)