Author: Antonio Cuni <anto.c...@gmail.com>
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
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to