Changeset 1ddb794 in sasmodels for sasmodels/autoc.py


Ignore:
Timestamp:
Dec 18, 2017 10:48:16 AM (6 years ago)
Author:
Paul Kienzle <pkienzle@…>
Children:
8224d24
Parents:
98a4f14
Message:

python 2/3 compatibility

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/autoc.py

    r2badeca r1ddb794  
    7272        function_name, function = translate.pop(0) 
    7373        filename = function.__code__.co_filename 
     74        escaped_filename = filename.replace('\\', '\\\\') 
    7475        offset = function.__code__.co_firstlineno 
    7576        refs = function.__code__.co_names 
     
    9394            elif isinstance(obj, float): 
    9495                constants[name] = obj 
     96                snippets.append('#line 1 "%s"' % escaped_filename) 
    9597                snippets.append("const double %s = %.15g;"%(name, obj)) 
    9698            elif isinstance(obj, int): 
    9799                constants[name] = obj 
     100                snippets.append('#line 1 "%s"' % escaped_filename) 
    98101                snippets.append("const int %s = %d;"%(name, obj)) 
    99102            elif isinstance(obj, (list, tuple, np.ndarray)): 
     
    106109                    obj = list(obj) + [0.]*(4-len(obj)) 
    107110                vals = ", ".join("%.15g"%v for v in obj) 
     111                snippets.append('#line 1 "%s"' % escaped_filename) 
    108112                snippets.append("const double %s[] = {%s};" %(name, vals)) 
    109113            elif isinstance(obj, special.Gauss): 
     
    129133 
    130134    # translate source 
    131     functions = py2c.translate( 
    132         [code[name] for name in ordered_dag(depends) if name in code], 
    133         constants) 
    134     snippets.clear() 
    135     snippets.append(functions) 
    136     #print("source", info.source) 
    137     print("\n".join(snippets)) 
    138     try: 
    139         c_text = "\n".join(snippets) 
    140         translated = open ("_autoc.c", "a+") 
    141         translated.write (c_text) 
    142         translated.close() 
    143     except Exception as excp: 
    144         strErr = "Error:\n" + str(excp.args) 
    145         print(strErr) 
    146     #return 
    147 #    raise RuntimeError("not yet converted...") 
     135    ordered_code = [code[name] for name in ordered_dag(depends) if name in code] 
     136    functions = py2c.translate(ordered_code, constants) 
     137    snippets.extend(functions) 
    148138 
    149139    # update model info 
Note: See TracChangeset for help on using the changeset viewer.