Changeset 13947


Ignore:
Timestamp:
11/13/12 09:58:24 (12 years ago)
Author:
jschierm
Message:

CHG: Change arguments on Python savevars and loadvars to match Matlab.

Location:
issm/trunk-jpl/src/m
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/organizer.py

    r13946 r13947  
    8484                #figure out if the model is there
    8585                if os.path.exists(path):
    86                         struc=loadvars({},path)
     86                        struc=loadvars(path)
    8787                        name=name=[key for key in struc.iterkeys()]
    8888                        md=struc.name[0]
     
    171171
    172172                #save model
    173                 savevars('md',md,name)
     173                savevars(name,'md',md)
    174174        #}}}
    175175
  • issm/trunk-jpl/src/m/io/loadmodel.py

    r13942 r13947  
    2121        try:
    2222                #recover model on file and name it md
    23                 struc=loadvars({},path)
     23                struc=loadvars(path)
    2424
    2525                name=[key for key in struc.iterkeys()]
  • issm/trunk-jpl/src/m/io/loadvars.py

    r13937 r13947  
    99        must be supplied.  If more than one variable is specified, it may be done with
    1010        a list of names or a dictionary of name as keys.  The output type will correspond
    11         to the input type.  All the variables in the file may be loaded by specifying an
    12         empty dictionary.
     11        to the input type.  All the variables in the file may be loaded by specifying only
     12        the file name.
    1313
    1414        Usage:
    15            a=loadvars('a','file.dat')
    16            [a,b]=loadvars(['a','b'],'file.dat')
    17            nvdict=loadvars({'a':None,'b':None},'file.dat')
    18            nvdict=loadvars({},'file.dat')
     15           a=loadvars('shelve.dat','a')
     16           [a,b]=loadvars('shelve.dat',['a','b'])
     17           nvdict=loadvars('shelve.dat',{'a':None,'b':None})
     18           nvdict=loadvars('shelve.dat')
    1919
    2020        """
    2121
     22        filename=''
    2223        nvdict={}
    23         filename=''
    2424
    25         if   isinstance(args[0],(str,unicode)):    # (name,filename)
    26                 nvdict[args[0]]=None
    27                 if len(args) >= 2 and isinstance(args[1],(str,unicode)):
    28                         filename=args[1]
     25        if len(args) >= 1 and isinstance(args[0],(str,unicode)):
     26                filename=args[0]
     27                if not filename:
     28                        filename='/tmp/shelve.dat'
    2929
    30         elif isinstance(args[0],list):    # ([names],filename)
    31                 for name in args[0]:
     30        else:
     31                raise TypeError("Missing file name.")
     32
     33        if   len(args) >= 2 and isinstance(args[1],(str,unicode)):    # (filename,name)
     34                nvdict[args[1]]=None
     35
     36        elif len(args) >= 2 and isinstance(args[1],list):    # (filename,[names])
     37                for name in args[1]:
    3238                        nvdict[name]=None
    33                 if len(args) >= 2 and isinstance(args[1],(str,unicode)):
    34                         filename=args[1]
    3539
    36         elif isinstance(args[0],dict):    # ({names:values},filename)
    37                 nvdict=args[0]
    38                 if len(args) >= 2 and isinstance(args[1],(str,unicode)):
    39                         filename=args[1]
     40        elif len(args) >= 2 and isinstance(args[1],dict):    # (filename,{names:values})
     41                nvdict=args[1]
     42
     43        elif len(args) == 1:    #  (filename)
     44                pass
    4045
    4146        else:
    4247                raise TypeError("Unrecognized input arguments.")
    4348
    44         if not filename:
    45                 filename='/tmp/shelve.out'
    4649        if os.path.exists(filename):
    4750                print "Loading variables from file '%s'." % filename
     
    6770        my_shelf.close()
    6871
    69         if   isinstance(args[0],(str,unicode)):    # (name,filename)
    70                 return nvdict[args[0]]
     72        if   len(args) >= 2 and isinstance(args[1],(str,unicode)):    # (value)
     73                return nvdict[args[1]]
    7174
    72         elif isinstance(args[0],list):    # ([names],filename)
    73                 value=[nvdict[name] for name in args[0]]
     75        elif len(args) >= 2 and isinstance(args[1],list):    # ([values])
     76                value=[nvdict[name] for name in args[1]]
    7477                return value
    7578
    76         elif isinstance(args[0],dict):    # ({names:values},filename)
     79        elif (len(args) >= 2 and isinstance(args[1],dict)) or (len(args) == 1):    # ({names:values})
    7780                return nvdict
    7881
  • issm/trunk-jpl/src/m/io/savevars.py

    r13937 r13947  
    1313
    1414        Usage:
    15            savevars('a',a,'file.dat')
    16            savevars(['a','b'],[a,b],'file.dat')
    17            savevars({'a':a,'b':b},'file.dat')
    18            savevars(globals(),'file.dat')
     15           savevars('shelve.dat','a',a)
     16           savevars('shelve.dat',['a','b'],[a,b])
     17           savevars('shelve.dat',{'a':a,'b':b})
     18           savevars('shelve.dat',globals())
    1919
    2020        """
    2121
     22        filename=''
    2223        nvdict={}
    23         filename=''
    2424
    25         if   isinstance(args[0],(str,unicode)):    # (name,value,filename)
    26                 nvdict[args[0]]=args[1]
    27                 if len(args) >= 3 and isinstance(args[2],(str,unicode)):
    28                         filename=args[2]
     25        if len(args) >= 1 and isinstance(args[0],(str,unicode)):
     26                filename=args[0]
     27                if not filename:
     28                        filename='/tmp/shelve.dat'
    2929
    30         elif isinstance(args[0],list):    # ([names],[values],filename)
    31                 for name,value in zip(args[0],args[1]):
     30        else:
     31                raise TypeError("Missing file name.")
     32
     33        if   len(args) >= 3 and isinstance(args[1],(str,unicode)):    # (filename,name,value)
     34                nvdict[args[1]]=args[2]
     35
     36        elif len(args) >= 3 and isinstance(args[1],list) and isinstance(args[2],list):    # (filename,[names],[values])
     37                for name,value in zip(args[1],args[2]):
    3238                        nvdict[name]=value
    33                 if len(args) >= 3 and isinstance(args[2],(str,unicode)):
    34                         filename=args[2]
    3539
    36         elif isinstance(args[0],dict):    # ({names:values},filename)
    37                 nvdict=args[0]
    38                 if len(args) >= 2 and isinstance(args[1],(str,unicode)):
    39                         filename=args[1]
     40        elif len(args) >= 2 and isinstance(args[1],dict):    # (filename,{names:values})
     41                nvdict=args[1]
    4042
    4143        else:
    4244                raise TypeError("Unrecognized input arguments.")
    4345
    44         if not filename:
    45                 filename='/tmp/shelve.out'
    4646        if os.path.exists(filename):
    4747                print "Shelving variables to existing file '%s'." % filename
Note: See TracChangeset for help on using the changeset viewer.