コード例 #1
0
ファイル: WinProcesses.py プロジェクト: raychorn/chrome_gui
 def parents_without_nodes(self):
     d_nodes = {}
     for node in self.root.preOrder():
         n = self.root.findForwards(parentId=node.procId)
         if (n is None) and (node.procId > -1) and (node.parentId > -1):
             d_nodes[node.parentId] = node
     return misc.sort(d_nodes.keys())
コード例 #2
0
 def __callback__(self, data):
     if (self.__isDebugging__):
         print '<<%s>>' % (data)
     lines = data.split(os.linesep)
     if (self.__isDebugging__):
         print 'lines=%d\n%s' % (len(lines), '\n'.join(lines))
     for aLine in lines:
         toks = aLine.split()
         if (not self.has_header) and (toks == __header__):
             self.has_header = True
             continue
         if (self.has_header):
             if (self.header is None):
                 if (_utils.isUsingWindows):
                     patterns = [
                         'Local'.lower(), 'Foreign'.lower(),
                         'State'.lower()
                     ]
                 else:
                     patterns = [
                         'Local'.lower(), 'Foreign'.lower(),
                         'PID/Program'.lower()
                     ]
                 for i in xrange(0, len(toks)):
                     if (i < len(toks)) and (str(toks[i]).lower()
                                             in patterns):
                         toks[i] = ' '.join(toks[i:i + 2])
                         del toks[i + 1]
                 self.header = toks
             else:
                 d = {}
                 for i in xrange(0, len(toks)):
                     d[self.header[i]] = toks[i]
                 if (d.has_key(__LocalAddress__)):
                     d[__port__] = int(d[__LocalAddress__].split(':')[-1])
                     self.__ports__.append(d[__port__])
                     self.__ports__ = list(set(self.__ports__))
                     misc.sort(self.__ports__)
                 self.__lines__.append(d)
                 if (d.has_key(__State__)) and (d[__State__] == __LISTEN__):
                     self.__listeners__.append(d)
             pass
         pass
コード例 #3
0
ファイル: daemon.py プロジェクト: raychorn/chrome_gui
 def prune(self, pattern, _max):
     logging.info('Prune Log for "%s".' % (self.logFileName))
     files = misc.sort(glob.glob(pattern))
     numToDelete = len(files) - _max
     if (numToDelete > 0):
         for f in files[0:numToDelete]:
             try:
                 os.remove(f)
                 logging.info('(%s) :: Removed "%s".' %
                              (misc.funcName(), f))
             except Exception as details:
                 info_string = _utils.formattedException(details=details)
                 logging.warning(info_string)
コード例 #4
0
ファイル: WinProcesses.py プロジェクト: raychorn/chrome_gui
 def reorder(self):
     _root = ProcessNode(["root",-1,-1])
     d = lists.HashedLists2()
     for node in self.root.preOrder():
         d[node.parentId] = node
     l = misc.sort(d.keys())
     for i in l:
         if (i > -1):
             _root._addChild(ProcessNode([d[i].procName,d[i].procId,d[i].parentId]))
     for node in self.root.preOrder():
         if (node.procId not in l):
             _root._addChild(node)
     self.root = _root
     return self.root
コード例 #5
0
def get_package_details2(browser, _url, url, logging=None):
    import urllib2
    from vyperlogix.misc import ObjectTypeName
    from vyperlogix import misc

    req = urllib2.Request(url)
    req.add_header("Referer", url.split('?')[0])
    browser.open(req)

    d = lists.HashedLists2()

    _forms = []
    for form in browser.forms():
        elements = form.controls
        _forms.append(tuple([len(elements), elements]))
    d_forms = dict(_forms)
    keys = misc.sort(d_forms.keys())
    elements = d_forms[keys[-1]]
    if (len(elements) > 0):
        inputs = [
            c for c in [(ele, ObjectTypeName.typeClassName(ele))
                        for ele in elements]
            if (c[-1].find('ClientForm.') > -1) and (
                c[-1] not in ['ClientForm.SubmitControl'])
        ]
        for item in inputs:
            ele, cname = item
            d_attrs = ele.attrs
            if (cname == 'ClientForm.SelectControl'):
                choice = [
                    choice for choice in ele.get_items() if (choice._selected)
                ]
                d[d_attrs['name']] = ','.join([
                    a['label'] for a in [
                        choice.attrs for choice in ele.get_items()
                        if (choice._selected)
                    ]
                ])
            elif (cname == 'ClientForm.TextareaControl'):
                for p in ele.pairs():
                    d[p[0]] = p[-1]
            else:
                try:
                    d[d_attrs['name']] = d_attrs['value']
                except Exception as e:
                    info_string = _utils.formattedException(details=e)
                    pass
        return d, form.attrs
    return d, []
コード例 #6
0
    def getSolutionsViewsFrequencies(self, num_days=30):
        from vyperlogix.sf.magma.solution_views import SalesForceMoltenSolutionViews
        sf_solution_views = SalesForceMoltenSolutionViews(self.sfQuery)

        num_days = int(num_days) if (str(num_days).isdigit()) else num_days

        d = lists.HashedLists()
        views = sf_solution_views.getSolutionsViews(num_days=num_days)
        try:
            for view in views:
                if (view.has_key('Solution__c')):
                    d[view['Solution__c']] = view
        except:
            pass
        d_freqs = lists.HashedLists()
        for k, v in d.iteritems():
            d_freqs[len(v)] = k
        l_freqs = misc.sort(d_freqs.keys())
        return (l_freqs, d_freqs, d)
コード例 #7
0
ファイル: django_utils.py プロジェクト: raychorn/chrome_gui
def __init__(_root_, isAdjustingPath=False):
    '''Initialize the sys.path for django under win32.'''
    import os, sys

    if (sys.platform == 'win32'):
        if (isAdjustingPath):
            pass
        from vyperlogix import misc
        from vyperlogix.django import django_utils
        from vyperlogix.lists.ListWrapper import ListWrapper

        fp = os.path.dirname(os.path.abspath(_root_))
        while (fp.split(os.sep)[-1].find('django') > -1):
            fp = os.path.dirname(fp)
        s = ListWrapper(sys.path)
        l = ListWrapper(list(set(s.findAllContaining(fp))))
        t = os.path.join(fp, 'django')
        if (os.path.exists(t)):
            l.append(t)
            i = l.findFirstMatching(fp)
            if (i > -1):
                del l[i]
        l = misc.sort(l)
        for item in l:
            i = s.findFirstMatching(item)
            while (i > -1):
                del s[i]
                i = s.findFirstMatching(item)
        sys.path = s.copy()
        for item in misc.reverse(l):
            sys.path.insert(0, item)
        return 'settings'
    else:
        fpath = os.path.dirname(os.path.abspath(_root_))
        if (fpath not in sys.path):
            sys.path.insert(0, fpath)
        return '%s.settings' % (fpath.split(os.sep)[-1])
コード例 #8
0
ファイル: lists.py プロジェクト: raychorn/chrome_gui
 def sortedKeys(self):
     return misc.sort(self.keys())
コード例 #9
0
ファイル: lists.py プロジェクト: raychorn/chrome_gui
def prettyPrint(item,
                prefix='',
                title='',
                tab_width=4,
                delay_end=False,
                asCSV=False,
                isHorizontal=False,
                csv_callback=None,
                fOut=sys.stdout):
    import types
    from vyperlogix.misc import ReportTheList

    _type_name = ObjectTypeName._typeName(item.__class__)
    ret = []
    try:
        if (isDict(item)):
            tab_width = 4 if (not str(tab_width).isdigit()) else tab_width
            if (asCSV):
                if (isHorizontal):
                    fOut.write('%s\n' % (misc.asCSV(item.keys())))
                    fOut.write('%s\n' % (misc.asCSV(item.values())))
                    fOut.write('\n')
                else:
                    isCallback = ((csv_callback) and (callable(csv_callback)))
                    i = 1
                    for kk, vv in item.iteritems():
                        l = [i, kk, vv]
                        if (isCallback):
                            try:
                                l = csv_callback(l)
                            except:
                                pass
                        fOut.write('%s\n' % (misc.asCSV(l)))
                        i += 1
            else:
                l_keys = [len(kk) for kk, vv in item.iteritems()]
                if (len(l_keys) > 0):
                    max_len = misc.sort(l_keys)[-1]
                    fOut.write('%sBEGIN: %s (%d items)\n' %
                               (prefix, title, len(item)))
                    i = 1
                    for kk, vv in item.iteritems():
                        i_s_len = int(len(kk) / tab_width)
                        i_s_len = 1 if (i_s_len == 0) else i_s_len
                        i_spaces = (int(max_len / tab_width) - i_s_len) - 1
                        if (isinstance(vv, tuple)):
                            vv = list(vv)
                        if (isinstance(vv, list)):
                            fOut.write('(%s' % ('-' * 40))
                            ReportTheList.reportTheList(vv,
                                                        title='%d :: (%s) %s' %
                                                        (i, kk, title),
                                                        fOut=fOut)
                            fOut.write(')%s' % ('-' * 40))
                            fOut.write('\n')
                        elif (isDict(vv)):
                            fOut.write('{%s' % ('-' * 40))
                            prettyPrint(vv,
                                        '\t\t',
                                        title='%d :: (%s) %s' % (i, kk, title),
                                        fOut=fOut)
                            fOut.write('}%s' % ('-' * 40))
                            fOut.write('\n')
                        else:
                            try:
                                fOut.write(
                                    '%s\t\t%d :: %s%s-->%s' %
                                    (prefix, i, kk, '\t' * i_spaces, vv))
                            except:
                                pass
                        i += 1
                    _end_msg = '%sEND! %s from %s' % (prefix, title,
                                                      _type_name)
                    if (not delay_end):
                        fOut.write(_end_msg)
                        fOut.write('\n')
                    else:
                        ret.append(_end_msg)
                        ret.append('')
                else:
                    logging.warning(
                        '(%s) :: Unable to process the object passed to this function due to lack of data.'
                        % (misc.funcName()))
        else:
            logging.warning(
                '(%s) :: Unable to process the object passed to this function because it is of type "%s" and a dictionary object was expected.'
                % (misc.funcName(), _type_name))
    except Exception as details:
        info_string = misc.formattedException(details=details)
        sys.stderr.write(info_string)
    return ret
コード例 #10
0
    def sort(self):
	self.data = misc.sort(self.data)
	return self