[ 
https://issues.apache.org/jira/browse/ARROW-2432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16432991#comment-16432991
 ] 

ASF GitHub Bot commented on ARROW-2432:
---------------------------------------

pitrou commented on a change in pull request #1878: ARROW-2432: [Python] Fix 
Pandas decimal type conversion with None values
URL: https://github.com/apache/arrow/pull/1878#discussion_r180568102
 
 

 ##########
 File path: cpp/src/arrow/python/decimal.cc
 ##########
 @@ -184,14 +184,15 @@ Status DecimalMetadata::Update(int32_t 
suggested_precision, int32_t suggested_sc
 }
 
 Status DecimalMetadata::Update(PyObject* object) {
-  DCHECK(PyDecimal_Check(object)) << "Object is not a Python Decimal";
+  bool is_decimal = PyDecimal_Check(object);
 
 Review comment:
   Right now we are doing the check twice in optimized builds, which is not 
nice IMHO. `DecimalMetadata::Update` is a private API so it's up to the caller 
to provide appropriate input.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> [Python] from_pandas fails when converting decimals if have None values
> -----------------------------------------------------------------------
>
>                 Key: ARROW-2432
>                 URL: https://issues.apache.org/jira/browse/ARROW-2432
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Python
>    Affects Versions: 0.9.0
>            Reporter: Bryan Cutler
>            Assignee: Bryan Cutler
>            Priority: Major
>              Labels: pull-request-available
>
> Using from_pandas to convert decimals fails if encounters a value of 
> {{None}}. For example:
> {code:java}
> In [1]: import pyarrow as pa
> ...: import pandas as pd
> ...: from decimal import Decimal
> ...:
> In [2]: s_dec = pd.Series([Decimal('3.14'), None])
> In [3]: pa.Array.from_pandas(s_dec, type=pa.decimal128(3, 2))
> ---------------------------------------------------------------------------
> ArrowInvalid Traceback (most recent call last)
> <ipython-input-3-2da56007a0da> in <module>()
> ----> 1 pa.Array.from_pandas(s_dec, type=pa.decimal128(3, 2))
> array.pxi in pyarrow.lib.Array.from_pandas()
> array.pxi in pyarrow.lib.array()
> error.pxi in pyarrow.lib.check_status()
> error.pxi in pyarrow.lib.check_status()
> ArrowInvalid: Error converting from Python objects to Decimal: Got Python 
> object of type NoneType but can only handle these types: decimal.Decimal
> {code}
> The above error is raised when specifying decimal type. When no type is 
> specified, a seg fault happens.
> This previously worked in 0.8.0.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to