Re: where is the PyString_AsString in Python 3.0?

2009-03-08 Thread Stefan Behnel
BigHand wrote:
> Finally I got the results now. This did take me 10 hours to solve
> this. the docs of 3.0..

You will have to get used to Unicode. The code you used against the C-API
mimics almost exactly the steps you'd use at the Python level.

Stefan
--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-08 Thread Stefan Behnel
BigHand wrote:
> I know that there is no PyString_AsString in Python3.0,
> could you guys give me instruction about how can I do with the
> following ?
> 
> PyObject *exc_type = NULL, *exc_value = NULL, *exc_tb = NULL;
> PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
> 
> how do I transfer the exc_type in a char* ?

Are you sure you want the exc_type and not the exc_value? The only major
thing I'd do with the type of an exception is to let Python check for it
using PyErr_ExceptionMatches().

Stefan
--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-06 Thread Benjamin Peterson
BigHand  gmail.com> writes:
> 
> Finally I got the results now. This did take me 10 hours to solve
> this. the docs of 3.0..
> I hope this could help someone else:

> const char *strExcType =  PyBytes_AS_STRING(pyStr);
> Py_XDECREF(str_exc_type);
> Py_XDECREF(pyStr);

You can't Py_DECREF() pyStr while holding on to strExcType because
PyBytes_AS_STRING just yields a reference to the internal contents of the 
object.


--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-06 Thread BigHand
On Mar 7, 9:34 am, BigHand  wrote:
> On Mar 7, 3:50 am, Benjamin Peterson  wrote:
>
> > BigHand  gmail.com> writes:
>
> > > > There is no PyString_AsString. Everything
> > >> string is unicode now. (PyUnicode API)
> > > hello,Ben,
> > > could you give me an example? I almost know the
> > > PyUnicode API,but the
> > > docs of 3.0 is too brief for me.
>
> > PyString_FromString -> PyUnicode_FromString
> > PyString_Concat -> PyUnicode_Concat
> > etc...
>
> > To get a char * you have to explicitly encode the string with
> > PyUnicode_AsEncodedString.
>
> thanks Ben!

Finally I got the results now. This did take me 10 hours to solve
this. the docs of 3.0..
I hope this could help someone else:

PyObject *exc_type = NULL, *exc_value = NULL, *exc_tb = NULL;
PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
PyObject* str_exc_type = PyObject_Repr(exc_type); //Now a unicode
object
PyObject* pyStr = PyUnicode_AsEncodedString(str_exc_type, "utf-8",
"Error ~");
const char *strExcType =  PyBytes_AS_STRING(pyStr);
Py_XDECREF(str_exc_type);
Py_XDECREF(pyStr);

Py_XDECREF(exc_type);
Py_XDECREF(exc_value);
Py_XDECREF(exc_tb);


--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-06 Thread BigHand
On Mar 7, 3:50 am, Benjamin Peterson  wrote:
> BigHand  gmail.com> writes:
>
> > > There is no PyString_AsString. Everything
> >> string is unicode now. (PyUnicode API)
> > hello,Ben,
> > could you give me an example? I almost know the
> > PyUnicode API,but the
> > docs of 3.0 is too brief for me.
>
> PyString_FromString -> PyUnicode_FromString
> PyString_Concat -> PyUnicode_Concat
> etc...
>
> To get a char * you have to explicitly encode the string with
> PyUnicode_AsEncodedString.

thanks Ben!
--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-06 Thread Benjamin Peterson
BigHand  gmail.com> writes:
> > There is no PyString_AsString. Everything
>> string is unicode now. (PyUnicode API)
> hello,Ben,
> could you give me an example? I almost know the
> PyUnicode API,but the
> docs of 3.0 is too brief for me.

PyString_FromString -> PyUnicode_FromString
PyString_Concat -> PyUnicode_Concat
etc...

To get a char * you have to explicitly encode the string with
PyUnicode_AsEncodedString.




--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-06 Thread BigHand
On 3月6日, 下午8时50分, Benjamin Peterson  wrote:
> BigHand  gmail.com> writes:
>
>
>
> > Guys:
> > I know that there is no PyString_AsString in Python3.0,
> > could you guys give me instruction about how can I do with the
> > following ?
>
> There is no PyString_AsString. Everything string is unicode now. (PyUnicode 
> API)
hello,Ben,
could you give me an example? I almost know the PyUnicode API,but the
docs of 3.0 is too brief for me.

B.R.
BH
--
http://mail.python.org/mailman/listinfo/python-list


Re: where is the PyString_AsString in Python 3.0?

2009-03-06 Thread Benjamin Peterson
BigHand  gmail.com> writes:

> 
> Guys:
> I know that there is no PyString_AsString in Python3.0,
> could you guys give me instruction about how can I do with the
> following ?

There is no PyString_AsString. Everything string is unicode now. (PyUnicode API)



--
http://mail.python.org/mailman/listinfo/python-list


where is the PyString_AsString in Python 3.0?

2009-03-06 Thread BigHand
Guys:
I know that there is no PyString_AsString in Python3.0,
could you guys give me instruction about how can I do with the
following ?

PyObject *exc_type = NULL, *exc_value = NULL, *exc_tb = NULL;
PyErr_Fetch(&exc_type, &exc_value, &exc_tb);

how do I transfer the exc_type in a char* ?

thanks in advance!.

B.R.
BH.
--
http://mail.python.org/mailman/listinfo/python-list