[pypy-commit] pypy py3k: enforce the parameters of Signature() to be unicode
antocuni
noreply at buildbot.pypy.org
Wed Aug 22 14:25:39 CEST 2012
Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: py3k
Changeset: r56799:a5e20b0caee4
Date: 2012-08-22 14:19 +0200
http://bitbucket.org/pypy/pypy/changeset/a5e20b0caee4/
Log: enforce the parameters of Signature() to be unicode
diff --git a/pypy/interpreter/argument.py b/pypy/interpreter/argument.py
--- a/pypy/interpreter/argument.py
+++ b/pypy/interpreter/argument.py
@@ -12,6 +12,7 @@
_immutable_fields_ = ["argnames[*]", "kwonlyargnames[*]"]
__slots__ = ("argnames", "kwonlyargnames", "varargname", "kwargname")
+ @enforceargs(None, [unicode], unicode, unicode, [unicode])
def __init__(self, argnames, varargname=None, kwargname=None, kwonlyargnames=None):
self.argnames = argnames
self.varargname = varargname
diff --git a/pypy/interpreter/gateway.py b/pypy/interpreter/gateway.py
--- a/pypy/interpreter/gateway.py
+++ b/pypy/interpreter/gateway.py
@@ -171,8 +171,8 @@
argname = self.orig_arg()
assert app_sig.varargname is None,(
"built-in function %r has conflicting rest args specs" % self.func)
- app_sig.varargname = 'args'
- app_sig.kwargname = 'keywords'
+ app_sig.varargname = u'args'
+ app_sig.kwargname = u'keywords'
def visit_args_w(self, el, app_sig):
argname = self.orig_arg()
diff --git a/pypy/interpreter/pycode.py b/pypy/interpreter/pycode.py
--- a/pypy/interpreter/pycode.py
+++ b/pypy/interpreter/pycode.py
@@ -19,6 +19,11 @@
from pypy.rlib.objectmodel import compute_hash, we_are_translated
from pypy.tool.stdlib_opcode import opcodedesc, HAVE_ARGUMENT
+def to_unicode(s):
+ if s is None:
+ return None
+ return unicode(s)
+
# helper
def unpack_str_tuple(space,w_str_tuple):
@@ -61,6 +66,11 @@
argcount += 1
else:
kwargname = None
+
+ argnames = map(to_unicode, argnames)
+ varargname = to_unicode(varargname)
+ kwargname = to_unicode(kwargname)
+ kwonlyargs = map(to_unicode, kwonlyargs)
return Signature(argnames, varargname, kwargname, kwonlyargs)
class PyCode(eval.Code):
diff --git a/pypy/objspace/std/dictmultiobject.py b/pypy/objspace/std/dictmultiobject.py
--- a/pypy/objspace/std/dictmultiobject.py
+++ b/pypy/objspace/std/dictmultiobject.py
@@ -611,7 +611,7 @@
class ObjectIteratorImplementation(_UnwrappedIteratorMixin, IteratorImplementation):
pass
-init_signature = Signature(['seq_or_map'], None, 'kwargs')
+init_signature = Signature([u'seq_or_map'], None, u'kwargs')
init_defaults = [None]
def update1(space, w_dict, w_data):
diff --git a/pypy/objspace/std/fake.py b/pypy/objspace/std/fake.py
--- a/pypy/objspace/std/fake.py
+++ b/pypy/objspace/std/fake.py
@@ -147,7 +147,7 @@
assert callable(cpy_callable), cpy_callable
def signature(self):
- return argument.Signature([], 'args', 'kwds')
+ return argument.Signature([], u'args', u'kwds')
def funcrun(self, func, args):
frame = func.space.createframe(self, func.w_func_globals,
diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py
--- a/pypy/objspace/std/listobject.py
+++ b/pypy/objspace/std/listobject.py
@@ -1059,7 +1059,7 @@
# _______________________________________________________
-init_signature = Signature(['sequence'], None, None)
+init_signature = Signature([u'sequence'], None, None)
init_defaults = [None]
def init__List(space, w_list, __args__):
diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py
--- a/pypy/objspace/std/setobject.py
+++ b/pypy/objspace/std/setobject.py
@@ -1377,7 +1377,7 @@
iter__Frozenset = iter__Set
-init_signature = Signature(['some_iterable'], None, None)
+init_signature = Signature([u'some_iterable'], None, None)
init_defaults = [None]
def init__Set(space, w_set, __args__):
w_iterable, = __args__.parse_obj(
More information about the pypy-commit
mailing list