[Python-Dev] infinities

tomer filiba tomerfiliba at gmail.com
Sun Nov 26 18:07:08 CET 2006


> sys.maxint makes more sense there.
no, it requires *infinity* to accomplish x - y == x; y != 0, for example:

while limit > 0:
    limit -= len(chunk)

with limit = posinf, the above code should be equivalent to "while True".

> There is already a PEP 754 for float constants
okay, that would suffice. but why isn't it part of stdlib already?
the pep is three years old... it should either be rejected or accepted.
meanwhile, there are lots of missing API functions in the floating-point
implementation...

besides, all the suggested APIs should be part of the float type, not
a separate module. here's what i want:

>>> f = 5.0
>>> f.is_infinity()
False
>>> float.PosInf
1.#INF


-tomer

On 11/26/06, Bob Ippolito <bob at redivi.com> wrote:
> On 11/26/06, tomer filiba <tomerfiliba at gmail.com> wrote:
> > i found several places in my code where i use positive infinity
> > (posinf) for various things, i.e.,
> >
> >     def readline(self, limit = -1):
> >         if limit < 0:
> >             limit = 1e10000 # posinf
> >         chars = []
> >         while limit > 0:
> >             ch = self.read(1)
> >             chars.append(ch)
> >             if not ch or ch == "\n":
> >                 break
> >             limit -= 1
> >         return "".join(chars)
> >
> > i like the concept, but i hate the "1e10000" stuff... why not add
> > posint, neginf, and nan to the float type? i find it much more readable as:
> >
> >     if limit < 0:
> >         limit = float.posinf
> >
> > posinf, neginf and nan are singletons, so there's no problem with
> > adding as members to the type.
>
> sys.maxint makes more sense there. Or you could change it to "while
> limit != 0" and set it to -1 (though I probably wouldn't actually do
> that)...
>
> There is already a PEP 754 for float constants, which is implemented
> in the fpconst module (see CheeseShop). It's not (yet) part of the
> stdlib though.
>
> -bob
>


More information about the Python-Dev mailing list