Ignore:
Timestamp:
Nov 30, 2017, 2:43:05 PM (3 years ago)
Author:
mabarracus
Message:

Remove stored useless information
Internal use with unicode strings
Clean json output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • hwdetector/trunk/fuentes/valentin.install/usr/bin/valentin

    r6405 r6413  
    2828    indentation=u'\t'*indent
    2929    try:
    30         if type(var) == type(dict()):
     30        if isinstance(var,dict):
    3131            for x in sorted(var.keys()):
    32                 st += u'{}{}\n{}{}'.format(indentation,x,indent_var(var=var[x],indent=indent+1),creturn)
    33         elif type(var) == type(list()):
     32                if not (x.lower().startswith('helper') and indent==0):
     33                    st += u'{}{}\n{}{}'.format(indentation,x,indent_var(var=var[x],indent=indent+1),creturn)
     34        elif isinstance(var,list) or isinstance(var,tuple):
    3435            if len(var) == 2 and var[0] == '__gz__':
    3536                content=zlib.decompress(base64.b64decode(var[1])).decode('utf-8')
     
    3738                st += u'{}{}'.format(indentation,replaced)
    3839            else:
    39                 for x in sorted(var):
    40                     st += u'{}\n'.format(indent_var(var=x,indent=indent+1))
    41         elif type(var) == type(str()):
    42             var = var.encode('utf-8')
     40                if isinstance(var,tuple):
     41                    st += u'{}{}'.format(indentation,var)
     42                else:
     43                    for x in sorted(var):
     44                        st += u'{}\n'.format(indent_var(var=x,indent=indent+1))
     45        elif isinstance(var,str):
     46            try:
     47                var = var.encode('utf-8')
     48            except:
     49                var = var.decode('utf-8')
    4350            replaced = var.replace(u'\n',indentation+u'\n'+indentation)
    4451            st += u'{}{}'.format(indentation,replaced)
    45         elif type(var) == type(unicode()):
     52        elif isinstance(var,unicode):
    4653            replaced = var.replace(u'\n',indentation+u'\n'+indentation)
    4754            st += u'{}{}'.format(indentation,replaced)
    48         elif type(var) == type(bool()) or type(var) == type(int()) or type(var) == type(float()) or type(var) == type(tuple()) or var == None:
     55        elif isinstance(var,bool) or isinstance(var,int) or isinstance(var,float) or var == None:
    4956            st += u'{}{}'.format(indentation,var)
    5057        else:
     
    233240                    pr=indent_var(var=capabilities)
    234241                else:
     242                    for x in (x for x in capabilities.keys() if x.lower().startswith('helper')):
     243                        del capabilities[x]
     244
     245                    def clear_compressed(var):
     246                        try:
     247                            if isinstance(var,tuple) or isinstance(var,list):
     248                                if len(var) == 2 and var[0]=='__gz__':
     249                                    try:
     250                                        var=zlib.decompress(base64.b64decode(var[1])).decode('utf-8')
     251                                    except:
     252                                        pass
     253                                    return var
     254                                var=list(var)
     255                                for i in range(len(var)):
     256                                    var[i]=clear_compressed(var[i])
     257                            elif isinstance(var,dict):
     258                                for x in var:
     259                                    var[x]=clear_compressed(var[x])
     260
     261                            return var
     262                        except Exception as e:
     263                            log.error(e)
     264
     265                    capabilities=clear_compressed(capabilities)
    235266                    pr=json.dumps(capabilities,indent=4,separators=(',',':'),sort_keys=True)
     267
    236268                sys.stdout.write(pr.encode('utf-8'))
    237269                sys.stderr.write('\n')
Note: See TracChangeset for help on using the changeset viewer.