[stem/master] Updated config.save()

commit d48aadd31678e6a4dd670a4e23832a3d563c4072 Author: Sathyanarayanan Gunasekaran <gsathya.ceg@gmail.com> Date: Thu Feb 9 00:05:19 2012 +0530 Updated config.save() - Added Pydocs - Added handling of multi-line entries - Added path argument - Changed single letter variable 'f' to 'output_file' - Instead of calling sort() on config.keys() and iterate over it, we pass config.keys() to sorted(). --- stem/util/conf.py | 31 ++++++++++++++++++------------- 1 files changed, 18 insertions(+), 13 deletions(-) diff --git a/stem/util/conf.py b/stem/util/conf.py index fe8ab68..b88dd10 100644 --- a/stem/util/conf.py +++ b/stem/util/conf.py @@ -250,21 +250,26 @@ class Config(): self._contents_lock.release() # TODO: pending improvements... - # - missing pydocs - # - integ testing - # - does not yet handle multi-line entries - # - should have an optional path argument - def save(self): - self._contents_lock.acquire() - - config_keys = self.keys() - config_keys.sort() + # - integ testing + def save(self, path = None): + """ + Saves configuration contents to the config file or to the path + specified. + + If path is not None, then the default path for this config handler + updated to the argument passed. + """ - with open(path, 'w') as f: - for entry_key in config_keys: + self._contents_lock.acquire() + + if path: + self.path = path + + with open(self._path, 'w') as output_file: + for entry_key in sorted(self.keys()): for entry_value in self.get_value(entry_key, multiple = True): - f.write('%s %s\n' % (entry_key, entry_value)) - + output_file.write('%s\n|%s\n' % (entry_key, entry_value.replace("\n", "\n|"))) + self._contents_lock.release() def clear(self):
participants (1)
-
atagar@torproject.org