kszucs opened a new pull request #7584: URL: https://github.com/apache/arrow/pull/7584
The original motivation for this patch was to reuse the same conversions path for both the scalars and arrays. In my recent patch the scalars are converted from a single element list to a single element array then copied out from it. On the long term we should convert them directly, perhaps with a more generic converter API, until that this patch aims to reduce code complexity without introducing any regressions. I checked the produced binary size: ```console # BEFORE -rwxr-xr-x 1 kszucs staff 2926832 Jun 29 23:07 libarrow_python.100.0.0.dylib # AFTER -rwxr-xr-x 1 kszucs staff 2869136 Jun 29 23:06 libarrow_python.100.0.0.dylib ``` ``` convert_builtins.ConvertArrayToPyList.time_convert ============ ========== ========= type before after ------------ ---------- --------- int32 13.2±0ms 13.2±0m uint32 13.4±0ms 14.8±0m int64 16.4±0ms 13.7±0m uint64 13.0±0ms 17.4±0m float32 13.5±0ms 16.0±0m float64 16.3±0ms 14.7±0m bool 12.0±0ms 12.0±0m decimal 61.1±0ms 65.0±0m binary 19.1±0ms 18.2±0m binary10 17.9±0ms 17.4±0m ascii 26.0±0ms 25.9±0m unicode 81.4±0ms 111±0m int64 list 145±0ms 152±0m struct 229±0ms 212±0m ============ ========== ========= convert_builtins.ConvertPyListToArray.time_convert ==================== ========= ======== type before after -------------------- --------- -------- int32 129±0ms 135±0m uint32 139±0ms 134±0m int64 132±0ms 139±0m uint64 135±0ms 132±0m float32 149±0ms 131±0m float64 143±0ms 141±0m bool 126±0ms 130±0m decimal 139±0ms 135±0m binary 145±0ms 130±0m binary10 136±0ms 130±0m ascii 145±0ms 136±0m unicode 148±0ms 149±0m int64 list 174±0ms 176±0m struct 164±0ms 177±0m struct from tuples 165±0ms 169±0m ==================== ========= ======== convert_builtins.InferPyListToArray.time_infer ============ ========= ======== type before after ------------ --------- -------- int64 157±0ms 158±0m float64 155±0ms 153±0m bool 155±0ms 154±0m decimal 249±0ms 233±0m binary 167±0ms 162±0m ascii 181±0ms 154±0m unicode 179±0ms 171±0m int64 list 188±0ms 192±0m struct 177±0ms 181±0m ============ ========= ======== ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to 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