Changeset 33e91b1 in sasmodels for sasmodels/generate.py


Ignore:
Timestamp:
Mar 3, 2015 4:28:50 PM (9 years ago)
Author:
Doucet, Mathieu <doucetm@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
53d0e24, 3a45c2c
Parents:
6c8db9e
Message:

pylint fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/generate.py

    ra5d0d00 r33e91b1  
    201201# Scale and background, which are parameters common to every form factor 
    202202COMMON_PARAMETERS = [ 
    203     [ "scale", "", 1, [0, np.inf], "", "Source intensity" ], 
    204     [ "background", "1/cm", 0, [0, np.inf], "", "Source background" ], 
     203    ["scale", "", 1, [0, np.inf], "", "Source intensity"], 
     204    ["background", "1/cm", 0, [0, np.inf], "", "Source background"], 
    205205    ] 
    206206 
     
    233233# description and its parameter table.  The remainder of the doc comes 
    234234# from the module docstring. 
    235 DOC_HEADER=""".. _%(name)s: 
     235DOC_HEADER = """.. _%(name)s: 
    236236 
    237237%(label)s 
     
    259259        ] 
    260260    column_widths = [max(w, len(h)) 
    261                      for w,h in zip(column_widths, PARTABLE_HEADERS)] 
     261                     for w, h in zip(column_widths, PARTABLE_HEADERS)] 
    262262 
    263263    sep = " ".join("="*w for w in column_widths) 
    264264    lines = [ 
    265265        sep, 
    266         " ".join("%-*s"%(w,h) for w,h in zip(column_widths, PARTABLE_HEADERS)), 
     266        " ".join("%-*s" % (w, h) for w, h in zip(column_widths, PARTABLE_HEADERS)), 
    267267        sep, 
    268268        ] 
    269269    for p in pars: 
    270270        lines.append(" ".join([ 
    271             "%-*s"%(column_widths[0],p[0]), 
    272             "%-*s"%(column_widths[1],p[-1]), 
    273             "%-*s"%(column_widths[2],RST_UNITS[p[1]]), 
    274             "%*g"%(column_widths[3],p[2]), 
     271            "%-*s" % (column_widths[0], p[0]), 
     272            "%-*s" % (column_widths[1], p[-1]), 
     273            "%-*s" % (column_widths[2], RST_UNITS[p[1]]), 
     274            "%*g" % (column_widths[3], p[2]), 
    275275            ])) 
    276276    lines.append(sep) 
     
    287287        if exists(target): 
    288288            return target 
    289     raise ValueError("%r not found in %s"%(filename, search_path)) 
     289    raise ValueError("%r not found in %s" % (filename, search_path)) 
    290290 
    291291def sources(info): 
     
    293293    Return a list of the sources file paths for the module. 
    294294    """ 
    295     search_path = [ dirname(info['filename']), 
    296                     abspath(joinpath(dirname(__file__),'models')) ] 
     295    search_path = [dirname(info['filename']), 
     296                   abspath(joinpath(dirname(__file__), 'models'))] 
    297297    return [_search(search_path, f) for f in info['source']] 
    298298 
     
    333333 
    334334    for p in pars: 
    335         name,ptype = p[0],p[4] 
     335        name, ptype = p[0], p[4] 
    336336        if ptype == 'volume': 
    337337            partype['pd-1d'].append(name) 
     
    346346            partype['fixed-2d'].append(name) 
    347347        else: 
    348             raise ValueError("unknown parameter type %r"%ptype) 
     348            raise ValueError("unknown parameter type %r" % ptype) 
    349349        partype[ptype].append(name) 
    350350 
     
    356356    """ 
    357357    spaces = " "*depth 
    358     sep = "\n"+spaces 
     358    sep = "\n" + spaces 
    359359    return spaces + sep.join(s.split("\n")) 
    360360 
     
    366366    Returns loop opening and loop closing 
    367367    """ 
    368     LOOP_OPEN="""\ 
     368    LOOP_OPEN = """\ 
    369369for (int %(name)s_i=0; %(name)s_i < N%(name)s; %(name)s_i++) { 
    370370  const double %(name)s = loops[2*(%(name)s_i%(offset)s)]; 
     
    376376    loop_end = [] 
    377377    for name in pd_pars: 
    378         subst = { 'name': name, 'offset': offset } 
    379         loop_head.append(indent(LOOP_OPEN%subst, depth)) 
     378        subst = {'name': name, 'offset': offset} 
     379        loop_head.append(indent(LOOP_OPEN % subst, depth)) 
    380380        loop_end.insert(0, (" "*depth) + "}") 
    381         offset += '+N'+name 
     381        offset += '+N' + name 
    382382        depth += 2 
    383383    return "\n".join(loop_head), "\n".join(loop_end) 
    384384 
    385 C_KERNEL_TEMPLATE=None 
     385C_KERNEL_TEMPLATE = None 
    386386def make_model(info): 
    387387    """ 
     
    416416 
    417417    iq_parameters = [p[0] 
    418         for p in info['parameters'][2:] # skip scale, background 
    419         if p[0] in set(fixed_1d+pd_1d)] 
     418                     for p in info['parameters'][2:] # skip scale, background 
     419                     if p[0] in set(fixed_1d + pd_1d)] 
    420420    iqxy_parameters = [p[0] 
    421         for p in info['parameters'][2:] # skip scale, background 
    422         if p[0] in set(fixed_2d+pd_2d)] 
     421                       for p in info['parameters'][2:] # skip scale, background 
     422                       if p[0] in set(fixed_2d + pd_2d)] 
    423423    volume_parameters = [p[0] 
    424         for p in info['parameters'] 
    425         if p[4]=='volume'] 
     424                         for p in info['parameters'] 
     425                         if p[4] == 'volume'] 
    426426 
    427427    # Fill in defintions for volume parameters 
     
    430430                        ','.join(volume_parameters))) 
    431431        defines.append(('VOLUME_WEIGHT_PRODUCT', 
    432                         '*'.join(p+'_w' for p in volume_parameters))) 
     432                        '*'.join(p + '_w' for p in volume_parameters))) 
    433433 
    434434    # Generate form_volume function from body only 
    435435    if info['form_volume'] is not None: 
    436436        if volume_parameters: 
    437             vol_par_decl = ', '.join('double '+p for p in volume_parameters) 
     437            vol_par_decl = ', '.join('double ' + p for p in volume_parameters) 
    438438        else: 
    439439            vol_par_decl = 'void' 
     
    445445    %(body)s 
    446446} 
    447 """%{'body':info['form_volume']} 
     447""" % {'body':info['form_volume']} 
    448448        source.append(fn) 
    449449 
    450450    # Fill in definitions for Iq parameters 
    451     defines.append(('IQ_KERNEL_NAME', info['name']+'_Iq')) 
     451    defines.append(('IQ_KERNEL_NAME', info['name'] + '_Iq')) 
    452452    defines.append(('IQ_PARAMETERS', ', '.join(iq_parameters))) 
    453453    if fixed_1d: 
    454454        defines.append(('IQ_FIXED_PARAMETER_DECLARATIONS', 
    455                         ', \\\n    '.join('const double %s'%p for p in fixed_1d))) 
     455                        ', \\\n    '.join('const double %s' % p for p in fixed_1d))) 
    456456    if pd_1d: 
    457457        defines.append(('IQ_WEIGHT_PRODUCT', 
    458                         '*'.join(p+'_w' for p in pd_1d))) 
     458                        '*'.join(p + '_w' for p in pd_1d))) 
    459459        defines.append(('IQ_DISPERSION_LENGTH_DECLARATIONS', 
    460                         ', \\\n    '.join('const int N%s'%p for p in pd_1d))) 
     460                        ', \\\n    '.join('const int N%s' % p for p in pd_1d))) 
    461461        defines.append(('IQ_DISPERSION_LENGTH_SUM', 
    462                         '+'.join('N'+p for p in pd_1d))) 
     462                        '+'.join('N' + p for p in pd_1d))) 
    463463        open_loops, close_loops = build_polydispersity_loops(pd_1d) 
    464464        defines.append(('IQ_OPEN_LOOPS', 
    465                         open_loops.replace('\n',' \\\n'))) 
     465                        open_loops.replace('\n', ' \\\n'))) 
    466466        defines.append(('IQ_CLOSE_LOOPS', 
    467                         close_loops.replace('\n',' \\\n'))) 
     467                        close_loops.replace('\n', ' \\\n'))) 
    468468    if info['Iq'] is not None: 
    469469        defines.append(('IQ_PARAMETER_DECLARATIONS', 
    470                        ', '.join('double '+p for p in iq_parameters))) 
     470                        ', '.join('double ' + p for p in iq_parameters))) 
    471471        fn = """\ 
    472472double Iq(double q, IQ_PARAMETER_DECLARATIONS); 
     
    474474    %(body)s 
    475475} 
    476 """%{'body':info['Iq']} 
     476""" % {'body':info['Iq']} 
    477477        source.append(fn) 
    478478 
    479479    # Fill in definitions for Iqxy parameters 
    480     defines.append(('IQXY_KERNEL_NAME', info['name']+'_Iqxy')) 
     480    defines.append(('IQXY_KERNEL_NAME', info['name'] + '_Iqxy')) 
    481481    defines.append(('IQXY_PARAMETERS', ', '.join(iqxy_parameters))) 
    482482    if fixed_2d: 
    483483        defines.append(('IQXY_FIXED_PARAMETER_DECLARATIONS', 
    484                         ', \\\n    '.join('const double %s'%p for p in fixed_2d))) 
     484                        ', \\\n    '.join('const double %s' % p for p in fixed_2d))) 
    485485    if pd_2d: 
    486486        defines.append(('IQXY_WEIGHT_PRODUCT', 
    487                         '*'.join(p+'_w' for p in pd_2d))) 
     487                        '*'.join(p + '_w' for p in pd_2d))) 
    488488        defines.append(('IQXY_DISPERSION_LENGTH_DECLARATIONS', 
    489                         ', \\\n    '.join('const int N%s'%p for p in pd_2d))) 
     489                        ', \\\n    '.join('const int N%s' % p for p in pd_2d))) 
    490490        defines.append(('IQXY_DISPERSION_LENGTH_SUM', 
    491                         '+'.join('N'+p for p in pd_2d))) 
     491                        '+'.join('N' + p for p in pd_2d))) 
    492492        open_loops, close_loops = build_polydispersity_loops(pd_2d) 
    493493        defines.append(('IQXY_OPEN_LOOPS', 
    494                         open_loops.replace('\n',' \\\n'))) 
     494                        open_loops.replace('\n', ' \\\n'))) 
    495495        defines.append(('IQXY_CLOSE_LOOPS', 
    496                         close_loops.replace('\n',' \\\n'))) 
     496                        close_loops.replace('\n', ' \\\n'))) 
    497497    if info['Iqxy'] is not None: 
    498498        defines.append(('IQXY_PARAMETER_DECLARATIONS', 
    499                        ', '.join('double '+p for p in iqxy_parameters))) 
     499                        ', '.join('double ' + p for p in iqxy_parameters))) 
    500500        fn = """\ 
    501501double Iqxy(double qx, double qy, IQXY_PARAMETER_DECLARATIONS); 
     
    503503    %(body)s 
    504504} 
    505 """%{'body':info['Iqxy']} 
     505""" % {'body':info['Iqxy']} 
    506506        source.append(fn) 
    507507 
     
    513513 
    514514    #for d in defines: print d 
    515     DEFINES='\n'.join('#define %s %s'%(k,v) for k,v in defines) 
    516     SOURCES='\n\n'.join(source) 
    517     return C_KERNEL_TEMPLATE%{ 
     515    DEFINES = '\n'.join('#define %s %s' % (k, v) for k, v in defines) 
     516    SOURCES = '\n\n'.join(source) 
     517    return C_KERNEL_TEMPLATE % { 
    518518        'DEFINES':DEFINES, 
    519519        'SOURCES':SOURCES, 
     
    531531    #print kernelfile 
    532532    info = dict( 
    533         filename = abspath(kernel_module.__file__), 
    534         name = kernel_module.name, 
    535         title = kernel_module.title, 
    536         description = kernel_module.description, 
    537         parameters = COMMON_PARAMETERS + kernel_module.parameters, 
    538         source = getattr(kernel_module, 'source', []), 
    539         oldname = kernel_module.oldname, 
    540         oldpars = kernel_module.oldpars, 
     533        filename=abspath(kernel_module.__file__), 
     534        name=kernel_module.name, 
     535        title=kernel_module.title, 
     536        description=kernel_module.description, 
     537        parameters=COMMON_PARAMETERS + kernel_module.parameters, 
     538        source=getattr(kernel_module, 'source', []), 
     539        oldname=kernel_module.oldname, 
     540        oldpars=kernel_module.oldpars, 
    541541        ) 
    542542    # Fill in attributes which default to None 
    543     info.update((k,getattr(kernel_module, k, None)) 
     543    info.update((k, getattr(kernel_module, k, None)) 
    544544                for k in ('ER', 'VR', 'form_volume', 'Iq', 'Iqxy')) 
    545545    # Fill in the derived attributes 
    546     info['limits'] = dict((p[0],p[3]) for p in info['parameters']) 
     546    info['limits'] = dict((p[0], p[3]) for p in info['parameters']) 
    547547    info['partype'] = categorize_parameters(info['parameters']) 
    548     info['defaults'] = dict((p[0],p[2]) for p in info['parameters']) 
     548    info['defaults'] = dict((p[0], p[2]) for p in info['parameters']) 
    549549 
    550550    # Assume if one part of the kernel is python then all parts are. 
     
    556556    Return the documentation for the model. 
    557557    """ 
    558     subst = dict(name=kernel_module.name.replace('_','-'), 
     558    subst = dict(name=kernel_module.name.replace('_', '-'), 
    559559                 label=" ".join(kernel_module.name.split('_')).capitalize(), 
    560560                 title=kernel_module.title, 
    561561                 parameters=make_partable(kernel_module.parameters), 
    562562                 docs=kernel_module.__doc__) 
    563     return DOC_HEADER%subst 
     563    return DOC_HEADER % subst 
    564564 
    565565 
     
    568568    import datetime 
    569569    from .models import cylinder 
    570     toc = lambda: (datetime.datetime.now()-tic).total_seconds() 
    571570    tic = datetime.datetime.now() 
    572     source, info = make(cylinder) 
    573     print "time:",toc() 
     571    toc = lambda: (datetime.datetime.now() - tic).total_seconds() 
     572    make(cylinder) 
     573    print "time:", toc() 
    574574 
    575575def main(): 
     
    579579        name = sys.argv[1] 
    580580        import sasmodels.models 
    581         __import__('sasmodels.models.'+name) 
     581        __import__('sasmodels.models.' + name) 
    582582        model = getattr(sasmodels.models, name) 
    583         source, info = make(model); print source 
    584         #print doc(model) 
     583        source, _ = make(model) 
     584        print source 
    585585 
    586586if __name__ == "__main__": 
Note: See TracChangeset for help on using the changeset viewer.