[ 
https://issues.apache.org/jira/browse/ARROW-1450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philipp Moritz updated ARROW-1450:
----------------------------------
    Description: 
At the moment, the following fails:

{code:none}
def test_serializaton_callback_error():

    class TempClass(object):
            pass

    # Have a SerializationContext but TempClass is not
    # registered

    serialization_context = pa.SerializationContext()

    with pytest.raises(pa.SerializationCallbackError):
        serialized_object = pa.serialize(TempClass, serialization_context)
{code}

This is because serialize will raise a generic ArrowException instead of a 
SerializationCallbackError. We do need the latter because it contains the 
object that couldn't be serialized, which is important to give good error 
messages; in the case of Ray we sometimes want use the object to register 
additional serialization callbacks on the fly to make the user experience 
smoother.

  was:
At the moment, the following fails:

```python
def test_serializaton_callback_error():

    class TempClass(object):
            pass

    # Have a SerializationContext but TempClass is not
    # registered

    serialization_context = pa.SerializationContext()

    with pytest.raises(pa.SerializationCallbackError):
        serialized_object = pa.serialize(TempClass, serialization_context)
```

This is because serialize will raise a generic ArrowException instead of a 
SerializationCallbackError. We do need the latter because it contains the 
object that couldn't be serialized, which is important to give good error 
messages; in the case of Ray we sometimes want use the object to register 
additional serialization callbacks on the fly to make the user experience 
smoother.


> [Python] Raise proper error if custom serialization handler fails
> -----------------------------------------------------------------
>
>                 Key: ARROW-1450
>                 URL: https://issues.apache.org/jira/browse/ARROW-1450
>             Project: Apache Arrow
>          Issue Type: Bug
>            Reporter: Philipp Moritz
>             Fix For: 0.7.0
>
>
> At the moment, the following fails:
> {code:none}
> def test_serializaton_callback_error():
>     class TempClass(object):
>             pass
>     # Have a SerializationContext but TempClass is not
>     # registered
>     serialization_context = pa.SerializationContext()
>     with pytest.raises(pa.SerializationCallbackError):
>         serialized_object = pa.serialize(TempClass, serialization_context)
> {code}
> This is because serialize will raise a generic ArrowException instead of a 
> SerializationCallbackError. We do need the latter because it contains the 
> object that couldn't be serialized, which is important to give good error 
> messages; in the case of Ray we sometimes want use the object to register 
> additional serialization callbacks on the fly to make the user experience 
> smoother.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to