annotate kallithea/bin/base.py @ 4208:ad38f9f93b3b kallithea-2.2.5-rebrand

Correct licensing information in individual files. The top-level license file is now LICENSE.md. Also, in various places where there should have been joint copyright holders listed, a single copyright holder was listed. It does not appear easy to add a link to a large list of copyright holders in these places, so it simply refers to the fact that various authors hold copyright. In future, if an easy method is discovered to link to a list from those places, we should do so. Finally, text is added to LICENSE.md to point to where the full list of copyright holders is, and that Kallithea as a whole is GPLv3'd.
author Bradley M. Kuhn <bkuhn@sfconservancy.org>
date Wed, 21 May 2014 16:59:37 -0400
parents d1addaf7a91e
children 1948ede028ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4116
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
1 # -*- coding: utf-8 -*-
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
2 # This program is free software: you can redistribute it and/or modify
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
3 # it under the terms of the GNU General Public License as published by
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
4 # the Free Software Foundation, either version 3 of the License, or
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
5 # (at your option) any later version.
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
6 #
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
7 # This program is distributed in the hope that it will be useful,
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
10 # GNU General Public License for more details.
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
11 #
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
12 # You should have received a copy of the GNU General Public License
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
14 """
4186
7e5f8c12a3fc First step in two-part process to rename directories to kallithea.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 4181
diff changeset
15 kallithea.bin.base
4116
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
16 ~~~~~~~~~~~~~~~~~~
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
17
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
18 Base utils for shell scripts
4116
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
19
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
20 :created_on: May 09, 2013
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
21 :author: marcink
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
22 :copyright: (c) 2013 RhodeCode GmbH.
4208
ad38f9f93b3b Correct licensing information in individual files.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 4187
diff changeset
23 :license: GPLv3, see LICENSE.md for more details.
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
24 """
4116
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
25
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
26 import os
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
27 import sys
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
28 import random
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
29 import urllib2
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
30 import pprint
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
31
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
32 try:
4186
7e5f8c12a3fc First step in two-part process to rename directories to kallithea.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 4181
diff changeset
33 from kallithea.lib.ext_json import json
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
34 except ImportError:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
35 try:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
36 import simplejson as json
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
37 except ImportError:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
38 import json
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
39
4181
e5cb0a4e061a Change command line tool config location to .config/kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 4116
diff changeset
40 CONFIG_NAME = '.config/kallithea'
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
41 FORMAT_PRETTY = 'pretty'
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
42 FORMAT_JSON = 'json'
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
43
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
44
3875
5a7d52cf084d Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
45 def api_call(apikey, apihost, method=None, **kw):
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
46 """
3875
5a7d52cf084d Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
47 Api_call wrapper for RhodeCode.
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
48
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
49 :param apikey:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
50 :param apihost:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
51 :param format: formatting, pretty means prints and pprint of json
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
52 json returns unparsed json
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
53 :param method:
3875
5a7d52cf084d Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
54 :returns: json response from server
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
55 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
56 def _build_data(random_id):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
57 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
58 Builds API data with given random ID
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
59
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
60 :param random_id:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
61 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
62 return {
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
63 "id": random_id,
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
64 "api_key": apikey,
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
65 "method": method,
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
66 "args": kw
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
67 }
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
68
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
69 if not method:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
70 raise Exception('please specify method name !')
4116
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
71 apihost = apihost.rstrip('/')
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
72 id_ = random.randrange(1, 9999)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
73 req = urllib2.Request('%s/_admin/api' % apihost,
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
74 data=json.dumps(_build_data(id_)),
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
75 headers={'content-type': 'text/plain'})
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
76 ret = urllib2.urlopen(req)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
77 raw_json = ret.read()
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
78 json_data = json.loads(raw_json)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
79 id_ret = json_data['id']
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
80 if id_ret == id_:
3875
5a7d52cf084d Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
81 return json_data
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
82
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
83 else:
3875
5a7d52cf084d Added --format into gist CLI
Marcin Kuzminski <marcin@python-works.com>
parents: 3840
diff changeset
84 _formatted_json = pprint.pformat(json_data)
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
85 raise Exception('something went wrong. '
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
86 'ID mismatch got %s, expected %s | %s' % (
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
87 id_ret, id_, _formatted_json))
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
88
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
89
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
90 class RcConf(object):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
91 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
92 RhodeCode config for API
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
93
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
94 conf = RcConf()
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
95 conf['key']
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
96
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
97 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
98
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
99 def __init__(self, config_location=None, autoload=True, autocreate=False,
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
100 config=None):
3840
dc4644865e8b Implemented simple gist functionality ref #530.
Marcin Kuzminski <marcin@python-works.com>
parents: 3833
diff changeset
101 HOME = os.getenv('HOME', os.getenv('USERPROFILE')) or ''
dc4644865e8b Implemented simple gist functionality ref #530.
Marcin Kuzminski <marcin@python-works.com>
parents: 3833
diff changeset
102 HOME_CONF = os.path.abspath(os.path.join(HOME, CONFIG_NAME))
dc4644865e8b Implemented simple gist functionality ref #530.
Marcin Kuzminski <marcin@python-works.com>
parents: 3833
diff changeset
103 self._conf_name = HOME_CONF if not config_location else config_location
3833
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
104 self._conf = {}
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
105 if autocreate:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
106 self.make_config(config)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
107 if autoload:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
108 self._conf = self.load_config()
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
109
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
110 def __getitem__(self, key):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
111 return self._conf[key]
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
112
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
113 def __nonzero__(self):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
114 if self._conf:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
115 return True
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
116 return False
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
117
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
118 def __eq__(self):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
119 return self._conf.__eq__()
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
120
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
121 def __repr__(self):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
122 return 'RcConf<%s>' % self._conf.__repr__()
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
123
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
124 def make_config(self, config):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
125 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
126 Saves given config as a JSON dump in the _conf_name location
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
127
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
128 :param config:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
129 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
130 update = False
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
131 if os.path.exists(self._conf_name):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
132 update = True
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
133 with open(self._conf_name, 'wb') as f:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
134 json.dump(config, f, indent=4)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
135
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
136 if update:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
137 sys.stdout.write('Updated config in %s\n' % self._conf_name)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
138 else:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
139 sys.stdout.write('Created new config in %s\n' % self._conf_name)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
140
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
141 def update_config(self, new_config):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
142 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
143 Reads the JSON config updates it's values with new_config and
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
144 saves it back as JSON dump
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
145
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
146 :param new_config:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
147 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
148 config = {}
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
149 try:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
150 with open(self._conf_name, 'rb') as conf:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
151 config = json.load(conf)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
152 except IOError, e:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
153 sys.stderr.write(str(e) + '\n')
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
154
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
155 config.update(new_config)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
156 self.make_config(config)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
157
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
158 def load_config(self):
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
159 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
160 Loads config from file and returns loaded JSON object
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
161 """
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
162 try:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
163 with open(self._conf_name, 'rb') as conf:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
164 return json.load(conf)
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
165 except IOError, e:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
166 #sys.stderr.write(str(e) + '\n')
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
167 pass