parameter files

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Russ

    #1

    parameter files

    I have a python module (file) that has a set of parameters associated
    with it. Let's say the module is called "code.py." I would like to keep
    the parameter assignments in a separate file so that I can save a copy
    for each "run" without having to save the entire code.py file. Let's
    say the parameter file is called "parameters.py. "

    Normally, code.py would simply import the parameters.py file. However,
    I don't want the parameters to be accessible to any other file that
    imports the code.py file. to prevent such access, I preface the name of
    each parameter with an underscore. But then the parameters aren't even
    visible in code.py! So I decided to use "execfile" instead of import so
    the parameters are visible.

    That solved the problem, but I am just wondering if there is a better
    and/or more standard way to handle a situation like this. Any
    suggestions? Thanks.

  • gry@ll.mit.edu

    #2
    Re: parameter files

    Russ wrote:
    I have a python module (file) that has a set of parameters associated
    with it. Let's say the module is called "code.py." I would like to keep
    the parameter assignments in a separate file so that I can save a copy
    for each "run" without having to save the entire code.py file. Let's
    say the parameter file is called "parameters.py. "
    >
    Normally, code.py would simply import the parameters.py file. However,
    I don't want the parameters to be accessible to any other file that
    imports the code.py file. to prevent such access, I preface the name of
    each parameter with an underscore. But then the parameters aren't even
    visible in code.py! So I decided to use "execfile" instead of import so
    the parameters are visible.
    >
    That solved the problem, but I am just wondering if there is a better
    and/or more standard way to handle a situation like this. Any
    suggestions? Thanks.
    I would try a configuration file, instead of a python module.
    See ConfigParser:
    <http://docs.python.org/lib/module-ConfigParser.ht ml>.
    You can save values for each "run" in a separate [section].
    Execfile is a pretty big hammer for this.

    -- George

    Comment

    • Russ

      #3
      Re: parameter files

      I would try a configuration file, instead of a python module.
      See ConfigParser:
      <http://docs.python.org/lib/module-ConfigParser.ht ml>.
      You can save values for each "run" in a separate [section].
      Execfile is a pretty big hammer for this.
      Hey, that looks interesting, but those docs don't do it for me. Can you
      point me to some more extensive examples of how to use ConfigParser?
      Thanks.

      Comment

      • Gabriel Genellina

        #4
        Re: parameter files

        At Thursday 14/9/2006 01:10, Russ wrote:
        I would try a configuration file, instead of a python module.
        See ConfigParser:
        <http://docs.python.org/lib/module-ConfigParser.ht ml>.
        You can save values for each "run" in a separate [section].
        Execfile is a pretty big hammer for this.
        >
        >Hey, that looks interesting, but those docs don't do it for me. Can you
        >point me to some more extensive examples of how to use ConfigParser?
        Just forget about interpolation and such; declare a section for each
        run in your config file:

        [run_name_one]
        a=123
        b=Test
        c=4.0

        [run_two]
        a=456
        b=Whatever
        c=0.1

        config = ConfigParser.Co nfigParser()
        config.read(fil ename)
        a = config.getint(' run_two','a') # a==456
        b = config.get('run _name_one','b') # b=='Test'
        section = 'run_two'
        c = config.getfloat (section,'c') # c==0.1


        Gabriel Genellina
        Softlab SRL





        _______________ _______________ _______________ _____
        Preguntá. Respondé. Descubrí.
        Todo lo que querías saber, y lo que ni imaginabas,
        está en Yahoo! Respuestas (Beta).
        ¡Probalo ya!


        Comment

        • Russ

          #5
          Re: parameter files

          Thanks for the examples.

          I don't think you understood what I meant by a "run." All I meant is
          that I want to save the configuration, for reference purposes, that was
          used for a particular run. That way I can reproduce the results if
          necessary, and I can avoid confusion about which parameters were used
          to get particular results.

          I don't need a section for each run. I only need one set of parameters.
          I suppose I could use the sections for different modules or classes,
          each of which needs its own parameters.


          Gabriel Genellina wrote:
          At Thursday 14/9/2006 01:10, Russ wrote:
          >
          I would try a configuration file, instead of a python module.
          See ConfigParser:
          <http://docs.python.org/lib/module-ConfigParser.ht ml>.
          You can save values for each "run" in a separate [section].
          Execfile is a pretty big hammer for this.
          Hey, that looks interesting, but those docs don't do it for me. Can you
          point me to some more extensive examples of how to use ConfigParser?
          >
          Just forget about interpolation and such; declare a section for each
          run in your config file:
          >
          [run_name_one]
          a=123
          b=Test
          c=4.0
          >
          [run_two]
          a=456
          b=Whatever
          c=0.1
          >
          config = ConfigParser.Co nfigParser()
          config.read(fil ename)
          a = config.getint(' run_two','a') # a==456
          b = config.get('run _name_one','b') # b=='Test'
          section = 'run_two'
          c = config.getfloat (section,'c') # c==0.1
          >
          >
          Gabriel Genellina
          Softlab SRL
          >
          >
          >
          >
          >
          _______________ _______________ _______________ _____
          Preguntá. Respondé. Descubrí.
          Todo lo que querías saber, y lo que ni imaginabas,
          está en Yahoo! Respuestas (Beta).
          ¡Probalo ya!
          http://www.yahoo.com.ar/respuestas

          Comment

          Working...