def short_list(self, width=0): ''' Return a shortened list of overlay information. @params width: int specifying terminal width. @rtype str: string of overlay information. ''' if len(self.name) > 25: name = self.name + " ###\n" name += pad(" ", 25) else: name = pad(self.name, 25) if len(set(e.type for e in self.sources)) == 1: _type = self.sources[0].type else: _type = '%s/..' % self.sources[0].type mtype = ' [' + pad(_type, 10) + ']' if not width: width = terminal_width() - 1 srclen = width - 43 source = ', '.join(self.source_uris()) if len(source) > srclen: source = source.replace("overlays.gentoo.org", "o.g.o") source = ' (' + pad(source, srclen) + ')' return encoder(name + mtype + source, self._encoding_)
def short_list(self, width = 0): ''' Return a shortened list of overlay information. @params width: int specifying terminal width. @rtype str: string of overlay information. ''' if len(self.name) > 25: name = self.name + " ###\n" name += pad(" ", 25) else: name = pad(self.name, 25) if len(set(e.type for e in self.sources)) == 1: _type = self.sources[0].type else: _type = '%s/..' % self.sources[0].type mtype = ' [' + pad(_type, 10) + ']' if not width: width = terminal_width()-1 srclen = width - 43 source = ', '.join(self.source_uris()) if len(source) > srclen: source = source.replace("overlays.gentoo.org", "o.g.o") source = ' (' + pad(source, srclen) + ')' return encoder(name + mtype + source, self._encoding_)
def short_list(self, width = 0): ''' >>> here = os.path.dirname(os.path.realpath(__file__)) >>> import xml.etree.ElementTree as ET # Python 2.5 >>> document =ET.parse(here + '/../tests/testfiles/global-overlays.xml') >>> overlays = document.findall('repo') + document.findall('overlay') >>> from layman.output import Message >>> output = Message() >>> a = Overlay({'output': output}, overlays[0]) >>> print a.short_list(80) wrobel [Subversion] (https://o.g.o/svn/dev/wrobel ) ''' if len(self.name) > 25: name = self.name + " ###\n" name += pad(" ", 25) else: name = pad(self.name, 25) if len(set(e.type for e in self.sources)) == 1: _type = self.sources[0].type else: _type = '%s/..' % self.sources[0].type mtype = ' [' + pad(_type, 10) + ']' if not width: width = terminal_width()-1 srclen = width - 43 source = ', '.join(self.source_uris()) if len(source) > srclen: source = source.replace("overlays.gentoo.org", "o.g.o") source = ' (' + pad(source, srclen) + ')' return encoder(name + mtype + source, self._encoding_)
def get_infostr(self): ''' Gives more detailed string of overlay information. @rtype str: encoded overlay information. ''' result = '' result += self.name + '\n' + (len(self.name) * '~') if len(self.sources) == 1: result += '\nSource : ' + self.sources[0].src else: result += '\nSources:' for i, v in enumerate(self.sources): result += '\n %d. %s' % (i + 1, v.src) result += '\n' if self.owner_name != None: result += '\nContact : %s <%s>' \ % (self.owner_name, self.owner_email) else: result += '\nContact : ' + self.owner_email if len(self.sources) == 1: result += '\nType : ' + self.sources[0].type else: result += '\nType : ' + '/'.join( sorted(set(e.type for e in self.sources))) result += '; Priority: ' + str(self.priority) + '\n' result += 'Quality : ' + self.quality + '\n' for description in self.descriptions: description = re.compile(' +').sub(' ', description) description = re.compile('\n ').sub('\n', description) result += '\nDescription:' result += '\n '.join(('\n' + description).split('\n')) result += '\n' if self.homepage != None: link = self.homepage link = re.compile(' +').sub(' ', link) link = re.compile('\n ').sub('\n', link) result += '\nLink:' result += '\n '.join(('\n' + link).split('\n')) result += '\n' if self.irc != None: result += '\nIRC : ' + self.irc + '\n' if len(self.feeds): result += '\n%s:' % ((len(self.feeds) == 1) and "Feed" or "Feeds") for i in self.feeds: result += '\n %s' % i result += '\n' return encoder(result, self._encoding_)
def filepath(self, url): '''Return a unique file name for the url.''' base = self.config['cache'] self.output.debug('Generating cache path.', 6) url_encoded = encoder(url, "UTF-8") return base + '_' + hashlib.md5(url_encoded).hexdigest()
def short_list(self, overlay): ''' Returns a list of information regarding the provided overlay parameter. ''' name = pad(overlay['name'], 25) if len(set(e for e in overlay['src_types'])) == 1: _type = overlay['src_types'][0] else: _type = '%s/..' % overlay['src_type'][0] mtype = ' [' + pad(_type, 10) + ']' source = ', '.join(overlay['src_uris']) if len(source) > self.srclen: source = source.replace("overlays.gentoo.org", "o.g.o") source = ' (' + pad(source, self.srclen) + ')' return encoder(name + mtype + source, self._encoding_)
def short_list(self, overlay): ''' >>> print(short_list(overlay)) wrobel [Subversion] (https://o.g.o/svn/dev/wrobel ) ''' name = pad(overlay['name'], 25) if len(set(e for e in overlay['src_types'])) == 1: _type = overlay['src_types'][0] else: _type = '%s/..' % overlay['src_type'][0] mtype = ' [' + pad(_type, 10) + ']' source = ', '.join(overlay['src_uris']) if len(source) > self.srclen: source = source.replace("overlays.gentoo.org", "o.g.o") source = ' (' + pad(source, self.srclen) + ')' return encoder(name + mtype + source, self._encoding_)
def get_infostr(self): ''' Gives more detailed string of overlay information. @rtype str: encoded overlay information. ''' result = '' result += self.name + '\n' + (len(self.name) * '~') if len(self.sources) == 1: result += '\nSource : ' + self.sources[0].src else: result += '\nSources : ' for i, v in enumerate(self.sources): result += '\n %d. %s' % (i + 1, v.src) result += '\n' if len(self.owners) == 1: if 'name' in self.owners[0] and self.owners[0]['name'] != None: result += '\nContact : %s <%s>' \ % (self.owners[0]['name'], self.owners[0]['email']) else: result += '\nContact : ' + self.owners[0]['email'] else: result += '\nContacts: ' for i, v in enumerate(self.owners): result += '\n %d. ' % (i + 1) if 'name' in v and v['name'] != None: result += '%s <%s>' % (v['name'], v['email']) else: result += v['email'] result += '\n' if len(self.sources) == 1: result += '\nType : ' + self.sources[0].type else: result += '\nType : ' + '/'.join( sorted(set(e.type for e in self.sources))) result += '; Priority: ' + str(self.priority) + '\n' result += 'Quality : ' + self.quality + '\n' for description in self.descriptions: description = re.compile(' +').sub(' ', description) description = re.compile('\n ').sub('\n', description) result += '\nDescription:' result += '\n '.join(('\n' + description).split('\n')) result += '\n' if self.homepage != None: link = self.homepage link = re.compile(' +').sub(' ', link) link = re.compile('\n ').sub('\n', link) result += '\nLink:' result += '\n '.join(('\n' + link).split('\n')) result += '\n' if self.irc != None: result += '\nIRC : ' + self.irc + '\n' if len(self.feeds): result += '\n%s:' % ((len(self.feeds) == 1) and "Feed" or "Feeds") for i in self.feeds: result += '\n %s' % i result += '\n' return encoder(result, self._encoding_)
def get_infostr(self): ''' >>> here = os.path.dirname(os.path.realpath(__file__)) >>> import xml.etree.ElementTree as ET # Python 2.5 >>> document =ET.parse(here + '/../tests/testfiles/global-overlays.xml') >>> overlays = document.findall('overlay') + document.findall('repo') >>> from layman.output import Message >>> output = Message() >>> a = Overlay({'output': output}, overlays[0]) >>> print a.get_infostr() wrobel ~~~~~~ Source : https://overlays.gentoo.org/svn/dev/wrobel Contact : [email protected] Type : Subversion; Priority: 10 Quality : experimental <BLANKLINE> Description: Test <BLANKLINE> ''' result = '' result += self.name + '\n' + (len(self.name) * '~') if len(self.sources) == 1: result += '\nSource : ' + self.sources[0].src else: result += '\nSources:' for i, v in enumerate(self.sources): result += '\n %d. %s' % (i + 1, v.src) result += '\n' if self.owner_name != None: result += '\nContact : %s <%s>' \ % (self.owner_name, self.owner_email) else: result += '\nContact : ' + self.owner_email if len(self.sources) == 1: result += '\nType : ' + self.sources[0].type else: result += '\nType : ' + '/'.join( sorted(set(e.type for e in self.sources))) result += '; Priority: ' + str(self.priority) + '\n' result += 'Quality : ' + self.quality + '\n' description = self.description description = re.compile(' +').sub(' ', description) description = re.compile('\n ').sub('\n', description) result += '\nDescription:' result += '\n '.join(('\n' + description).split('\n')) result += '\n' if self.homepage != None: link = self.homepage link = re.compile(' +').sub(' ', link) link = re.compile('\n ').sub('\n', link) result += '\nLink:' result += '\n '.join(('\n' + link).split('\n')) result += '\n' if self.irc != None: result += '\nIRC : ' + self.irc + '\n' if len(self.feeds): result += '\n%s:' % ((len(self.feeds) == 1) and "Feed" or "Feeds") for i in self.feeds: result += '\n %s' % i result += '\n' return encoder(result, self._encoding_)