[Python-3000] String to unicode fixes in time and datetime

Guido van Rossum guido at python.org
Fri Aug 24 06:10:25 CEST 2007


Hi Ero,

Thanks for these! I checked them in.

The datetime patch had a few problems (did you run the unit test?)
that I got rid of.

The function you were looking for does exist, it's
PyUnicode_AsUTF8String(). (which returns a new object instead of a
borrowed reference). I changed your code to use this.

I changed a few places from PyBuffer_FromStringAndSize("", 1) to
<ditto>("", 0) -- the bytes object always allocates an extra null byte
that isn't included in the count.

I changed a few places from using strlen() to using the
PyBuffer_GET_SIZE() macro.

PyBuffer_AS_STRING() can be NULL if the size is 0; I rearranged some
code to avoid asserts triggering in this case.

There are still two remaining problems: test_datetime leaks a bit (49
references) and test_strptime ands test_strftime leak a lot (over 2000
references!).  We can hunt these down tomorrow.

--Guido

On 8/23/07, Ero Carrera <ero.carrera at gmail.com> wrote:
>
> Hi,
>
> I'm attaching a small patch result of attempting to tackle part of
> one of the tasks in the Google Sprint.
> The patch removes most of the references of PyString_* calls in the
> "time" and "datetime" modules and adds Unicode support instead.
>
> There's a problem in "datetime" with
> "_PyUnicode_AsDefaultEncodedString". As there's no current equivalent
> that would provide an object of type "bytes", there are two
> occurrences of PyString_* functions to handle the returned "default
> encoded string" and convert it into bytes.
>
> cheers,
> --
> Ero
>
>
>
> _______________________________________________
> Python-3000 mailing list
> Python-3000 at python.org
> http://mail.python.org/mailman/listinfo/python-3000
> Unsubscribe: http://mail.python.org/mailman/options/python-3000/guido%40python.org
>
>
>


-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list