Author: Antonio Cuni <[email protected]>
Branch: hpy
Changeset: r98538:f67708ee1204
Date: 2020-01-15 11:09 +0100
http://bitbucket.org/pypy/pypy/changeset/f67708ee1204/
Log: implement HPyUnicode_AsUTF8String
diff --git a/pypy/module/hpy_universal/interp_unicode.py
b/pypy/module/hpy_universal/interp_unicode.py
--- a/pypy/module/hpy_universal/interp_unicode.py
+++ b/pypy/module/hpy_universal/interp_unicode.py
@@ -2,6 +2,7 @@
from rpython.rlib import rutf8
from pypy.interpreter.error import OperationError, oefmt
from pypy.interpreter.unicodehelper import wcharpsize2utf8
+from pypy.objspace.std import unicodeobject
from pypy.module.hpy_universal.apiset import API
from pypy.module.hpy_universal import handles
@@ -29,9 +30,10 @@
@API.func("HPy HPyUnicode_AsUTF8String(HPyContext ctx, HPy h)")
def HPyUnicode_AsUTF8String(space, ctx, h):
- from rpython.rlib.nonconst import NonConstant
- if NonConstant(False): return 0 # needed for the annotator
- raise NotImplementedError
+ w_unicode = handles.deref(space, h)
+ # XXX: what should we do if w_unicode is not a str?
+ w_bytes = unicodeobject.encode_object(space, w_unicode, 'utf-8', 'strict')
+ return handles.new(space, w_bytes)
@API.func("HPy HPyUnicode_FromWideChar(HPyContext ctx, const wchar_t *w,
HPy_ssize_t size)")
def HPyUnicode_FromWideChar(space, ctx, wchar_p, size):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit