~johan-hake/modelparameters/trunk

« back to all changes in this revision

Viewing changes to modelparameters/parameterdict.py

  • Committer: Johan Hake
  • Date: 2013-01-22 10:23:53 UTC
  • Revision ID: hake.dev@gmail.com-20130122102353-eztmsnnagj7xwu64
Fixes for a nicely formated help string for the options in ParameterDict

Show diffs side-by-side

added added

removed removed

Lines of Context:
371
371
 
372
372
                    # Call the function recursively
373
373
                    add_options(value, "%s%s"%(opt_base_copy, key))
 
374
                    continue
374
375
 
375
376
                elif isinstance(value, Param):
376
377
 
379
380
                        continue
380
381
                    
381
382
                    # If the value is a Param get the value
 
383
                    actuall_value = value.getvalue()
 
384
 
 
385
                    # Get description
382
386
                    description = value.description
383
 
                    value = value.getvalue()
384
 
                
385
 
                # Check for available types
386
 
                if not type(value) in FORMAT_CONVERTER.keys():
387
 
                    continue
388
387
 
389
 
                if isinstance(value, (list, tuple)):
390
 
                    # If a default length of the list or tuple is 0, 
391
 
                    # assume sequence type to be int
392
 
                    if len(value) == 0:
393
 
                        sequence_type = int
 
388
                    # Check for sequence
 
389
                    if isinstance(actuall_value, (list, tuple)):
 
390
                        # If a default length of the list or tuple is 0, 
 
391
                        # assume sequence type to be int
 
392
                        if len(actuall_value) == 0:
 
393
                            sequence_type = int
 
394
                        else:
 
395
                            # Else assume it to be equal to the first argument
 
396
                            sequence_type = type(actuall_value[0])
394
397
                    else:
395
 
                        # Else assume it to be equal to the first argument
396
 
                        sequence_type = type(value[0])
397
 
                else:
398
 
                    sequence_type = None
399
 
                
 
398
                        sequence_type = None
 
399
 
 
400
                    # Nicely formated value
 
401
                    formated_value = value.format_data()
 
402
 
 
403
                # Check for available types
 
404
                if not type(actuall_value) in FORMAT_CONVERTER.keys():
 
405
                    continue
 
406
 
400
407
                # Add option with callback function
401
408
                parser.add_option("%s%s"%(opt_base_copy, key), \
402
409
                        action = "callback", 
403
410
                        callback = callback(\
404
 
                                parent, key, type(value), sequence_type), 
405
 
                        type = FORMAT_CONVERTER[type(value)], 
406
 
                        help = "Default(%s)%s"%(str(value),\
 
411
                                parent, key, type(actuall_value), sequence_type), 
 
412
                        type = FORMAT_CONVERTER[type(actuall_value)], 
 
413
                        help = "Default(%s)%s"%(str(formated_value),\
407
414
                                        (": " + description) if description else "")
408
415
                        )
409
416