annotate rhodecode/bin/base.py @ 4147:1c8f818787b3 rhodecode-2.2.5-gpl

old style: show the full link box on summary page - no overlap or truncation
author Mads Kiilerich <madski@unity3d.com>
date Wed, 02 Jul 2014 19:03:23 -0400
parents ffd45b185016
children e5cb0a4e061a
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 """
4116
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
15 rhodecode.bin.base
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.
ffd45b185016 Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents: 3875
diff changeset
23 :license: GPLv3, see LICENSE 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:
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
33 from rhodecode.lib.ext_json import json
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
5055dd385118 api: decouple some parts from api CLI script
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
40 CONFIG_NAME = '.rhodecode'
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