Changeset c95dfc63 in sasmodels for sasmodels/sasview_model.py


Ignore:
Timestamp:
Aug 10, 2016 9:51:47 PM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
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:
fd19811
Parents:
672978c
Message:

support existing sum and product models

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/sasview_model.py

    r9457498 rc95dfc63  
    1818 
    1919import numpy as np  # type: ignore 
    20  
    21 # Monkey patch sas.sascalc.fit as sas.models so that sas.models.pluginmodel 
    22 # is available to the plugin modules. 
    23 import sys 
    24 import sas 
    25 import sas.sascalc.fit 
    26 sys.modules['sas.models'] = sas.sascalc.fit 
    27 sas.models = sas.sascalc.fit 
    2820 
    2921from . import core 
     
    4638    pass 
    4739 
     40SUPPORT_OLD_STYLE_PLUGINS = True 
     41 
     42def _register_old_models(): 
     43    # type: () -> None 
     44    """ 
     45    Place the new models into sasview under the old names. 
     46 
     47    Monkey patch sas.sascalc.fit as sas.models so that sas.models.pluginmodel 
     48    is available to the plugin modules. 
     49    """ 
     50    import sys 
     51    import sas 
     52    import sas.sascalc.fit 
     53    sys.modules['sas.models'] = sas.sascalc.fit 
     54    sas.models = sas.sascalc.fit 
     55 
     56    import sas.models 
     57    from sasmodels.conversion_table import CONVERSION_TABLE 
     58    for new_name, conversion in CONVERSION_TABLE.items(): 
     59        old_name = conversion[0] 
     60        module_attrs = { old_name: find_model(new_name) } 
     61        ConstructedModule = type(old_name, (), module_attrs) 
     62        old_path = 'sas.models.' + old_name 
     63        setattr(sas.models, old_path, ConstructedModule) 
     64        sys.modules[old_path] = ConstructedModule 
     65 
    4866 
    4967# TODO: separate x_axis_label from multiplicity info 
     
    86104        except Exception: 
    87105            logging.error(traceback.format_exc()) 
     106    if SUPPORT_OLD_STYLE_PLUGINS: 
     107        _register_old_models() 
     108 
    88109    return models 
    89110 
     
    676697            raise 
    677698 
     699def test_old_name(): 
     700    # type: () -> None 
     701    """ 
     702    Load and run cylinder model from sas.models.CylinderModel 
     703    """ 
     704    if not SUPPORT_OLD_STYLE_PLUGINS: 
     705        return 
     706    try: 
     707        # if sasview is not on the path then don't try to test it 
     708        import sas 
     709    except ImportError: 
     710        return 
     711    load_standard_models() 
     712    from sas.models.CylinderModel import CylinderModel 
     713    CylinderModel().evalDistribution([0.1, 0.1]) 
     714 
    678715if __name__ == "__main__": 
    679716    print("cylinder(0.1,0.1)=%g"%test_model()) 
Note: See TracChangeset for help on using the changeset viewer.