@@ -5,36 +5,34 @@ module PyCall
5
5
module IRubyHelper
6
6
private
7
7
8
- def check_pyobject_respond_to_format_method ( obj , method_name )
9
- return false unless obj . kind_of? PyObject
10
- return false unless PyCall . hasattr? ( obj , method_name )
11
- PyCall . getattr ( obj , method_name ) . kind_of? PyCall :: LibPython . PyMethod_Type
8
+ def check_python_object_respond_to_format_method ( obj , method_name )
9
+ return false unless obj . kind_of? PyObjectWrapper
10
+ return false unless obj . respond_to? method_name
11
+ true
12
12
end
13
13
14
- def register_pyobject_formatter ( format_name , mime , priority_value = 0 )
14
+ def register_python_object_formatter ( format_name , mime , priority_value = 0 )
15
15
method_name = :"_repr_#{ format_name } _"
16
16
match do |obj |
17
- check_pyobject_respond_to_format_method ( obj , method_name )
17
+ check_python_object_respond_to_format_method ( obj , method_name )
18
18
end
19
19
priority priority_value
20
- format mime do |obj |
21
- PyCall . getattr ( obj , method_name ) . ( )
22
- end
20
+ format mime , &method_name
23
21
end
24
22
end
25
23
end
26
24
27
25
::IRuby ::Display ::Registry . module_eval do
28
26
extend PyCall ::IRubyHelper
29
27
30
- register_pyobject_formatter :html , 'text/html'
31
- register_pyobject_formatter :markdown , 'text/markdown'
32
- register_pyobject_formatter :svg , 'image/svg+xml'
33
- register_pyobject_formatter :png , 'image/png'
34
- register_pyobject_formatter :jpeg , 'image/jpeg'
35
- register_pyobject_formatter :latex , 'text/latex'
36
- register_pyobject_formatter :json , 'application/json'
37
- register_pyobject_formatter :javascript , 'application/javascript'
38
- register_pyobject_formatter :pdf , 'application/pdf'
39
- register_pyobject_formatter :pretty , 'text/plain' , -1000
28
+ register_python_object_formatter :html , 'text/html' , 1
29
+ register_python_object_formatter :markdown , 'text/markdown' , 1
30
+ register_python_object_formatter :svg , 'image/svg+xml' , 1
31
+ register_python_object_formatter :png , 'image/png' , 1
32
+ register_python_object_formatter :jpeg , 'image/jpeg' , 1
33
+ register_python_object_formatter :latex , 'text/latex' , 1
34
+ register_python_object_formatter :json , 'application/json' , 1
35
+ register_python_object_formatter :javascript , 'application/javascript' , 1
36
+ register_python_object_formatter :pdf , 'application/pdf' , 1
37
+ register_python_object_formatter :pretty , 'text/plain' , -1000
40
38
end
0 commit comments