On 10/6/2011 11:27 AM, Mahmood Naderan wrote:
Dear developers,
Suppose I have this list in command line options:
... -b b1,b2,b3

Here is what I wrote:
parser = optparse.OptionParser()

If you are starting a new project, consider using argparse, which has superceded optparse.

# Benchmark options
parser.add_option("-b", "--benchmark", default="", help="The benchmark to be 
loaded.")
process = []
benchmarks = options.benchmark.split(',')
for bench_name in benchmarks:
     process.append(bench_name)

At this stage, I want to bind each process to something:
np = 2
for i in xrange(np):
     ...
     system.cpu[i].workload = process[i]

however I get this error:

   File "configs/example/cmp.py", line 81, in<module>
     system.cpu[i].workload = process[i]
   File "/home/mahmood/gem5/src/python/m5/SimObject.py", line 627, in 
__setattr__
     value = param.convert(value)
   File "/home/mahmood/gem5/src/python/m5/params.py", line 236, in convert
     tmp_list = [ ParamDesc.convert(self, value) ]
   File "/home/mahmood/gem5/src/python/m5/params.py", line 159, in convert
     return self.ptype(value)
TypeError: __init__() takes exactly 1 argument (2 given)
Error setting param TmpClass.workload to bzip2_chicken

params.py is part of the simulator and I didn't wrote that.

My question is what is the simplest way to fix that?
Or is there any better idea than what I did in order to parse such command line 
option?

  thanks

// Naderan *Mahmood;


--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to