[egenix-users] mx.DateTime bogus warning: "float where int expected"

Jim Vickroy Jim.Vickroy at noaa.gov
Wed Sep 17 18:59:54 CEST 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