[egenix-users] mx.DateTime bogus warning: "float where int expected"
Jim Vickroy
Jim.Vickroy at noaa.gov
Wed Sep 17 12:59:54 EDT 2003
I do not have an explanation, but the statement:
dt = self.firstdate + self.mm * int(i)
appears to be the source of this warning. The warning only appears the first
time the statement is executed; thereafter, no warning is issued.
python at sarcastic-horse.com wrote:
> 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.
>
> _______________________________________________________________________
> eGenix.com User Mailing List http://www.egenix.com/
> http://lists.egenix.com/mailman/listinfo/egenix-users
More information about the Python-list
mailing list