Hi,
On 2015-12-02 08:53, Nathan Scott wrote:
>
> Hmm, not sure how I managed to overlook this failure before,
> but looks like there's another python3 issue or two still
> lurking in pmrep (I fixed a few, but, hmm ... missed this).
>
> qa$ diff 1069.out 1069.out.bad
> 2a3,12
>> Traceback (most recent call last):
>> File "/bin/pmrep", line 1333, in <module>
>> P.execute()
>> File "/bin/pmrep", line 830, in execute
>> self.report(self.ctstamp, values)
>> File "/bin/pmrep", line 935, in report
>> self.write_stdout(tstamp, values)
>> File "/bin/pmrep", line 1229, in write_stdout
>> (self.prevvals == None or self.prevvals[i][j][2] == NO_VAL):
>> TypeError: 'dict_values' object does not support indexing
>
> Any clues? Otherwise, I'll take a look tomorrow.
yes, this is very recently added check, I just forgot to test with
Python 3, the fix is like in the other such cases:
---
src/pmrep/pmrep.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/pmrep/pmrep.py b/src/pmrep/pmrep.py
index 2ca4c4f..84ee89a 100644
--- a/src/pmrep/pmrep.py
+++ b/src/pmrep/pmrep.py
@@ -1166,12 +1166,12 @@ class PMReporter(object):
# Raw or rate
if not self.metrics[metric][3] and \
- (self.prevvals == None or self.prevvals[i][j][2] == NO_VAL):
+ (self.prevvals == None or list(self.prevvals[i])[j][2] ==
NO_VAL):
# Rate not yet possible
value = NO_VAL
elif self.metrics[metric][3] or \
self.descs[i].sem != PM_SEM_COUNTER or \
- values[i][j][2] == NO_VAL:
+ list(values[i])[j][2] == NO_VAL:
# Raw
value = list(values[i])[j][2]
else:
@@ -1183,7 +1183,7 @@ class PMReporter(object):
else:
scale = pow(1000, (PM_TIME_SEC -
self.descs[i].contents.units.scaleTime))
delta = scale * (float(self.ctstamp) - float(self.ptstamp))
- value = (values[i][j][2] - self.prevvals[i][j][2]) / delta
if delta else 0
+ value = (list(values[i])[j][2] -
list(self.prevvals[i])[j][2]) / delta if delta else 0
# Make sure the value fits
if type(value) is int or type(value) is long:
Thanks,
--
Marko Myllynen
|