python: ucs2 and ucs4

db4
Björn Lindqvist 2014-01-21 18:10:24 +01:00 committed by John Benediktsson
parent bd8d0b5d84
commit 175a469e49
1 changed files with 12 additions and 1 deletions

View File

@ -8,6 +8,7 @@ USING:
grouping
hashtables
kernel
memoize
namespaces
python.ffi
sequences
@ -50,7 +51,7 @@ ERROR: python-error type message ;
: with-py ( quot -- )
'[ Py_Initialize _ call Py_Finalize ] with-destructors ; inline
! Types and their methods
! Types
: <py-tuple> ( length -- tuple )
PyTuple_New check-return ;
@ -63,6 +64,7 @@ ERROR: python-error type message ;
: py-tuple-size ( obj -- len )
PyTuple_Size ;
! Dicts
: <py-dict> ( -- dict )
PyDict_New check-return ;
@ -78,12 +80,21 @@ ERROR: python-error type message ;
: py-dict-size ( obj -- len )
PyDict_Size ;
! Lists
: py-list-size ( list -- len )
PyList_Size ;
: py-list-get-item ( obj pos -- val )
PyList_GetItem check-return ;
! Unicodes
: py-unicode>utf8 ( uni -- str )
PyUnicodeUCS2_AsUTF8String (check-return)
PyString_AsString (check-return)
MEMO: py-ucs-size ( -- n )
"maxunicode" PySys_GetObject check-return PyInt_AsLong 0xffff = 2 4 ? ;
! Data marshalling to Python
GENERIC: (>py) ( obj -- obj' )
M: string (>py) PyUnicodeUCS2_FromString ;