From b6a8761af9a3e8ae547cf12992192931b95f0861 Mon Sep 17 00:00:00 2001 From: Martin Sivak Date: Tue, 7 Sep 2010 14:57:14 +0200 Subject: Changes to FAK Gui and Info object - Gui allows to save results in info object - Info object allows attaching files and saving as .zip archive --- pyfirstaidkit/configuration.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'pyfirstaidkit/configuration.py') diff --git a/pyfirstaidkit/configuration.py b/pyfirstaidkit/configuration.py index a4cedf1..fc534fb 100644 --- a/pyfirstaidkit/configuration.py +++ b/pyfirstaidkit/configuration.py @@ -20,6 +20,7 @@ import os import sys from cStringIO import StringIO from shlex import shlex +import zipfile if os.environ.has_key("FIRST_AID_KIT_CONF"): cfgfile = os.environ["FIRST_AID_KIT_CONF"].split(":") @@ -95,6 +96,9 @@ class FAKConfigSection(object): def unlock(self): self.__dict__["__use_lock"] = False + def attach(self, file): + self.__dict__["__configuration"].attach(file) + def __getattr__(self, key): if not self.__dict__["__configuration"]. \ has_section(self.__dict__["__section_name"]) and \ @@ -179,13 +183,27 @@ def getConfigBits(name, cfg = Config): return c class FAKInfo(ConfigParser.SafeConfigParser, FAKConfigMixIn): + def __init__(self, *args, **kwargs): + ConfigParser.SafeConfigParser.__init__(self, *args, **kwargs) + FAKConfigMixIn.__init__(self) + self._attachments = [] + def write(self, fd=sys.stdout): fd.write("--- Info section ---\n") ConfigParser.SafeConfigParser.write(self, fd) fd.write("--------------------\n") - pass + def dump(self, filename): + fd = zipfile.ZipFile(filename, "w", zipfile.ZIP_DEFLATED) + temp = StringIO() + ConfigParser.SafeConfigParser.write(self, temp) + fd.writestr("results.ini", temp.getvalue()) + for f in self._attachments: + fd.write(f) + fd.close() + + def attach(self, file): + self._attachments.append(file) Info = FAKInfo() Info.lock() - -- cgit