lib/pycall/dict.rb in pycall-0.1.0.alpha.20170426 vs lib/pycall/dict.rb in pycall-0.1.0.alpha.20170502
- old
+ new
@@ -19,10 +19,11 @@
end
end
def [](key)
key = key.to_s if key.is_a? Symbol
+ key = key.__pyobj__ if key.respond_to?(:__pyobj__)
value = if key.is_a? String
LibPython.PyDict_GetItemString(__pyobj__, key).to_ruby
else
LibPython.PyDict_GetItem(__pyobj__, key).to_ruby
end
@@ -35,10 +36,11 @@
end
end
def []=(key, value)
key = key.to_s if key.is_a? Symbol
+ key = key.__pyobj__ if key.respond_to?(:__pyobj__)
value = Conversions.from_ruby(value)
value = value.__pyobj__ unless value.kind_of? LibPython::PyObjectStruct
if key.is_a? String
LibPython.PyDict_SetItemString(__pyobj__, key, value)
else
@@ -47,9 +49,10 @@
value
end
def delete(key)
key = key.to_s if key.is_a? Symbol
+ key = key.__pyobj__ if key.respond_to?(:__pyobj__)
if key.is_a? String
value = LibPython.PyDict_GetItemString(__pyobj__, key).to_ruby
LibPython.PyDict_DelItemString(__pyobj__, key)
else
value = LibPython.PyDict_GetItem(__pyobj__, key).to_ruby