def add_modules(self, modName): ''' Add a python module to self['Modules']. >>> ipl = IPL().clear() >>> ipl.add_modules('a') True >>> ipl['Modules'] ['a'] >>> ipl.add_modules(['b', 'c']) True >>> ipl['Modules'] ['a', 'b', 'c'] ''' if isinstance(modName, str): if modName not in self.IPL['Modules']: self.IPL['Modules'].append(modName) self.modified = timestamp() return modName in self['Modules'] if isinstance(modName, list): for mod in modName: if mod not in self.IPL['Modules']: self.IPL['Modules'].append(mod) self.modified = timestamp() return set(self['Modules']).issuperset(set(modName))
def add_program(self,\ name='',\ category='',\ optional=False,\ silent_install=None,\ silent_install_tag=None,\ backup_required=False,\ version='',\ date='',\ location='',\ GUID='',\ data='',\ replace=False,\ update=False): ''' Add a program to self['Programs']. >>> ipl = IPL(data=[]) >>> ipl.add_program(name='Test Program') True >>> 'Test Program' in ipl True ''' modified = False if name: data = {'category': category,\ 'optional': optional,\ 'silent_install': silent_install,\ 'silent_install_tag': silent_install_tag,\ 'backup_required': backup_required,\ 'name': name,\ 'version': version,\ 'date': date,\ 'location': location,\ 'GUID': GUID,\ 'data': data} if name not in self.get_names(): self.IPL['Programs'].append(data) modified = True else: if replace: self.remove_program(name) self.IPL['Programs'].append(data) modified = True if update: index = self['Programs'].index(self.get_program(name)) old = self['Programs'][index] new = data for param in old.items(): if not param[1]: old[param[0]] = new[param[0]] modified = True if modified: self.modified = timestamp() return name in self
def __init__(self, title='', pretext='', two_column=False): self.story = ['', ''] self.pagesize = portrait(letter) self.styles = getSampleStyleSheet() if title: self.title = PDF.Item('TITLE', title) else: self.title = PDF.Item('TITLE', timestamp()) self.pretext = PDF.Item('PRETEXT', pretext) self.set_title(self.title.value) self.set_pretext(self.pretext.value) self.two_column = two_column self.savedir = '%s\\Documents'%os.path.expanduser('~')
def __init__(self, title='', pretext='', two_column=False): self.story = ['', ''] self.pagesize = portrait(letter) self.styles = getSampleStyleSheet() if title: self.title = PDF.Item('TITLE', title) else: self.title = PDF.Item('TITLE', timestamp()) self.pretext = PDF.Item('PRETEXT', pretext) self.set_title(self.title.value) self.set_pretext(self.pretext.value) self.two_column = two_column self.savedir = '%s\\Documents' % os.path.expanduser('~')
def remove_module(self, modName): ''' Remove module (name=modName) from self['Modules'] >>> ipl = IPL().clear() >>> ipl.add_modules('a') True >>> 'a' in ipl['Modules'] True >>> ipl.remove_module('a') True >>> 'a' not in ipl['Modules'] True ''' if modName in self['Modules']: index = self['Modules'].index(modName) self['Modules'].pop(index) self.modified = timestamp() return modName not in self['Modules']
def remove_program(self, name): ''' Remove program (name=name) from self['Programs'] >>> ipl = IPL(data=[]) >>> ipl.add_program(name='Test') True >>> 'Test' in ipl True >>> ipl.remove_program('Test') True >>> 'Test' not in ipl True ''' if name in self: index = self['Programs'].index(self.get_program(name)) self['Programs'].pop(index) self.modified = timestamp() return name not in self
def __init__(self, data=None, load=False, keys=RegistryKeys()): ''' Create an IPL instance. Data should be of the format: {'Programs':[],'Modules': []}. If data is excluded, IPL.get() will populate self.IPL, if data is not in the IPL format, self.IPL will be set to {'Programs':[],'Modules': []} ''' self.name = os.environ['computername'] self.date = timestamp() self.modified = self.date if data is not None: try: self.IPL = {'Programs': data['Programs'],\ 'Modules': data['Modules']} except: self.IPL = {'Programs': [], 'Modules': []} else: if load: self.IPL = IPL.load().IPL else: self.IPL = IPL.get(keys)
def __init__(self, data=None, load=False, keys=RegistryKeys()): ''' Create an IPL instance. Data should be of the format: {'Programs':[],'Modules': []}. If data is excluded, IPL.get() will populate self.IPL, if data is not in the IPL format, self.IPL will be set to {'Programs':[],'Modules': []} ''' self.name = os.environ['computername'] self.date = timestamp() self.modified = self.date if data is not None: try: self.IPL = {'Programs': data['Programs'],\ 'Modules': data['Modules']} except: self.IPL = {'Programs':[],'Modules': []} else: if load: self.IPL = IPL.load().IPL else: self.IPL = IPL.get(keys)