mx.DateTime bogus warning: "float where int expected"

python at sarcastic-horse.com python at sarcastic-horse.com
Wed Sep 17 18:04:19 CEST 2003


Hi-


I'm getting a "DeprecationWarning: integer argument expected, got float"
warning with mx.DateTime and I can't figure out why.  Can anyone help me
out?

This code:

import mx.DateTime

class xLabeller:
    def __init__(self, firstdate,fmt='%B, %Y'):
        self.firstdate = firstdate
        self.fmt = fmt
        self.mm = mx.DateTime.RelativeDateTime(months=1)
    def __call__(self, i):
        dt = self.firstdate + self.mm * int(i)
        return dt.Format(self.fmt)

nov99 = mx.DateTime.Date(int(1999), int(11))

xl = xLabeller(nov99)
print "xl2:"
print xl(int(3))

Produces this warning:

>>> ================================ RESTART ===========
>>>
xl2:
C:\Python23\lib\site-packages\mx\DateTime\DateTime.py:585:
DeprecationWarning: integer argument expected, got float
  return DateTime(year, month, 1) + \
February, 2000

What is the story?  I've wrapped every number in my program with int().  I
can't figure out what's triggering the warning.

And, even stranger, the whole thing works fine at the python shell:

>>> import mx.DateTime
>>> mm = mx.DateTime.RelativeDateTime(months=1)
>>> nov99
<DateTime object for '1999-11-01 00:00:00.00' at 98dc20>
>>> dt = nov99 + mm * 3
>>> dt.Format('%b, %y')
'Feb, 00'
>>>

What am I doing wrong?


Thanks for the help.





More information about the Python-list mailing list