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

python at python at
Wed Sep 17 18:04:19 CEST 2003


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

This code:

import mx.DateTime

class xLabeller:
    def __init__(self, firstdate,fmt='%B, %Y'):
        self.firstdate = firstdate
        self.fmt = fmt = mx.DateTime.RelativeDateTime(months=1)
    def __call__(self, i):
        dt = self.firstdate + * 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 ===========
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