| Previous: SciParam GUI features | Up: Index | Next: Creating dialogs and notebooks |
This HTML documentation is no longer maintained. See sciparam-manual.pdf for an updated version.

Creating parameters

Import of parameter classes

SciParam contains the following parameter classes: SciParam supports accessing these in several ways, as shown here with StringParam: This one is deprecated, except for saving keystrokes in interactive sessions: There are other possible ways to import them, but only these are guaranteed to work in future versions.

Every parameter instance must have a name and can have a description, a unit, a default value, a current value and a comment. Additionally there is the required flag and the notunknown flag. See the description of the SciParam class for details.

Import of classes Range and Distribution

The parameter classes can build ranges and distributions from a string, therefore you don't need to import these classes very often.

If you want to import them, use one of these methods:

This one is deprecated, except for saving keystrokes in interactive sessions: There are other possible ways to import them, but only these are guaranteed to work in future versions.

See the description of the Range class and the description of the Distribution class for details.

Sample code

File examples/parameter_example.py:
#!/usr/bin/env python
#
# Copyright (C) 2002 by Intevation GmbH
# Authors:
# Thomas Arendsen Hein <thomas@intevation.de>
#
# This program is free software under the GPL (>=v2)
# Read the file COPYING coming with the software for details.

"""
Scientific Parameters
"""

from SciParam import FloatParam, IntParam, StringParam, ChoiceParam, DistParam

if __name__ == "__main__":
    parameter = [
        StringParam('Name', 'a unique identifier', required=1,
                    value='Silicon',
                    comment='This is an example for a required value.\n'
                            'The user can change this comment to note the '
                            'source of this information.'),
        StringParam('Symbol', 'chemical symbol', required=1, value='Si'),
        IntParam('Atomic No',
                 'Number in the periodic table of the elements',
                 value=14, wrange='[1;260]', erange='[1;oo['),
        FloatParam('Atomic Mass', None, value=28.0855, erange='[0;oo['),
        FloatParam('Melting Point', 'under normal conditions', '°C',
                   value=1414,
                   wrange='[-273.15;4e3]', erange='[-273.15;oo['),
        FloatParam('Boiling Point', 'under normal conditions', '°C',
                   value=3265, wrange='[-270;6e3]', erange='[-273.15;oo['),
        ChoiceParam('Crystal', 'crystal structure',
                    choices=[None, 'simple cubic', 'face centered cubic',
                             'body centered cubic', 'diamond cubic',
                             'tetragonal', 'orthorombic', 'monoclinc'],
                    value='face centered cubic', long=1),
        DistParam('Temperature', 'temperature of samples', '°C',
                  default=20, value=17.5, erange='[-273.15;oo[',
                  dist=(3.7, 'normal')),
        DistParam('Volume', 'Volume of used samples', 'cm³',
                  default='2;20/uniform', erange='[0;oo['),
        ChoiceParam('Verified', 'Have these values been checked?',
                    choices=ChoiceParam.yes_no, value=0),
    ]

    for par in parameter:
        print par.name, "=", par.value
        print " comment =", par.comment
        if isinstance(par, DistParam):
            print " dist =", par.dist



| Previous: SciParam GUI features | Up: Index | Next: Creating dialogs and notebooks |