mirror of https://github.com/kivy/pyjnius.git
expose the signatures as a signature object instead of `__dir__`
This commit is contained in:
parent
601dfa15fb
commit
a5d3bb4069
|
@ -682,7 +682,7 @@ cdef class JavaMethod(object):
|
||||||
self.j_cls = NULL
|
self.j_cls = NULL
|
||||||
self.j_self = None
|
self.j_self = None
|
||||||
|
|
||||||
def __dir__(self):
|
def signatures(self):
|
||||||
return list([readable_sig(self.definition, self.is_varargs)])
|
return list([readable_sig(self.definition, self.is_varargs)])
|
||||||
|
|
||||||
def __init__(self, definition, **kwargs):
|
def __init__(self, definition, **kwargs):
|
||||||
|
@ -964,7 +964,7 @@ cdef class JavaMultipleMethod(object):
|
||||||
cdef bytes name
|
cdef bytes name
|
||||||
cdef bytes classname
|
cdef bytes classname
|
||||||
|
|
||||||
def __dir__(self):
|
def signatures(self):
|
||||||
return [readable_sig(args, is_varargs) for args, static, is_varargs in self.definitions]
|
return [readable_sig(args, is_varargs) for args, static, is_varargs in self.definitions]
|
||||||
|
|
||||||
def __cinit__(self, definition, **kwargs):
|
def __cinit__(self, definition, **kwargs):
|
||||||
|
|
|
@ -403,6 +403,7 @@ cdef int calculate_score(sign_args, args, is_varargs=False) except *:
|
||||||
# change this method score
|
# change this method score
|
||||||
return score
|
return score
|
||||||
|
|
||||||
|
|
||||||
cdef readable_sig(sig, is_var):
|
cdef readable_sig(sig, is_var):
|
||||||
"""
|
"""
|
||||||
Converts JNI signature to easily readable signature.
|
Converts JNI signature to easily readable signature.
|
||||||
|
@ -477,4 +478,3 @@ cdef readable_sig(sig, is_var):
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
return args, rtn
|
return args, rtn
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,15 @@ from jnius.reflect import autoclass
|
||||||
|
|
||||||
class DirTest(unittest.TestCase):
|
class DirTest(unittest.TestCase):
|
||||||
|
|
||||||
def test_varargs_dir(self):
|
def test_varargs_signatures(self):
|
||||||
# >>> from jnius import autoclass
|
# >>> from jnius import autoclass
|
||||||
# >>> cls = autoclass('java.lang.System')
|
# >>> cls = autoclass('java.lang.System')
|
||||||
# >>> dir(cls.out.printf)
|
# >>> cls.out.printf.signatures()
|
||||||
# [(['java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream'),
|
# [(['java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream'),
|
||||||
# (['java/util/Locale', 'java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream')]
|
# (['java/util/Locale', 'java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream')]
|
||||||
|
|
||||||
cls = autoclass("java.lang.System")
|
cls = autoclass("java.lang.System")
|
||||||
result = dir(cls.out.printf)
|
result = cls.out.printf.signatures()
|
||||||
|
|
||||||
assert isinstance(result, list)
|
assert isinstance(result, list)
|
||||||
assert all(isinstance(f, tuple) for f in result)
|
assert all(isinstance(f, tuple) for f in result)
|
||||||
|
@ -22,15 +22,15 @@ class DirTest(unittest.TestCase):
|
||||||
assert (['java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream') in result
|
assert (['java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream') in result
|
||||||
assert (['java/util/Locale', 'java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream') in result
|
assert (['java/util/Locale', 'java/lang/String', 'java/lang/Object...'], 'java/io/PrintStream') in result
|
||||||
|
|
||||||
def test_array_dir(self):
|
def test_array_signatures(self):
|
||||||
# >>> from jnius import autoclass
|
# >>> from jnius import autoclass
|
||||||
# >>> cls = autoclass('java.util.List')
|
# >>> cls = autoclass('java.util.List')
|
||||||
# >>> dir(cls.toArray)
|
# >>> cls.toArray.signatures()
|
||||||
# [([], 'java/lang/Object[]'),
|
# [([], 'java/lang/Object[]'),
|
||||||
# (['java/lang/Object[]'], 'java/lang/Object[]')]
|
# (['java/lang/Object[]'], 'java/lang/Object[]')]
|
||||||
|
|
||||||
cls = autoclass("java.util.List")
|
cls = autoclass("java.util.List")
|
||||||
result = dir(cls.toArray)
|
result = cls.toArray.signatures()
|
||||||
|
|
||||||
assert isinstance(result, list)
|
assert isinstance(result, list)
|
||||||
assert all(isinstance(f, tuple) for f in result)
|
assert all(isinstance(f, tuple) for f in result)
|
||||||
|
@ -38,10 +38,10 @@ class DirTest(unittest.TestCase):
|
||||||
assert ([], 'java/lang/Object[]') in result
|
assert ([], 'java/lang/Object[]') in result
|
||||||
assert (['java/lang/Object[]'], 'java/lang/Object[]') in result
|
assert (['java/lang/Object[]'], 'java/lang/Object[]') in result
|
||||||
|
|
||||||
def test_dir(self):
|
def test_signatures(self):
|
||||||
# >>> from jnius import autoclass
|
# >>> from jnius import autoclass
|
||||||
# >>> cls = autoclass('java.lang.String')
|
# >>> cls = autoclass('java.lang.String')
|
||||||
# >>> dir(cls.valueOf)
|
# >>> cls.valueOf.signatures()
|
||||||
# [(['boolean'], 'java/lang/String'),
|
# [(['boolean'], 'java/lang/String'),
|
||||||
# (['char'], 'java/lang/String'),
|
# (['char'], 'java/lang/String'),
|
||||||
# (['char[]'], 'java/lang/String'),
|
# (['char[]'], 'java/lang/String'),
|
||||||
|
@ -53,7 +53,7 @@ class DirTest(unittest.TestCase):
|
||||||
# (['long'], 'java/lang/String')]
|
# (['long'], 'java/lang/String')]
|
||||||
|
|
||||||
cls = autoclass("java.lang.String")
|
cls = autoclass("java.lang.String")
|
||||||
result = dir(cls.valueOf)
|
result = cls.valueOf.signatures()
|
||||||
|
|
||||||
assert isinstance(result, list)
|
assert isinstance(result, list)
|
||||||
assert all(isinstance(f, tuple) for f in result)
|
assert all(isinstance(f, tuple) for f in result)
|
||||||
|
|
Loading…
Reference in New Issue