kszucs commented on a change in pull request #7519: URL: https://github.com/apache/arrow/pull/7519#discussion_r448589857
########## File path: python/pyarrow/scalar.pxi ########## @@ -1217,21 +764,50 @@ cdef dict _scalar_classes = { _Type_INT16: Int16Scalar, _Type_INT32: Int32Scalar, _Type_INT64: Int64Scalar, + _Type_HALF_FLOAT: HalfFloatScalar, _Type_FLOAT: FloatScalar, _Type_DOUBLE: DoubleScalar, + _Type_DECIMAL: Decimal128Scalar, + _Type_DATE32: Date32Scalar, + _Type_DATE64: Date64Scalar, + _Type_TIME32: Time32Scalar, + _Type_TIME64: Time64Scalar, + _Type_TIMESTAMP: TimestampScalar, + _Type_DURATION: DurationScalar, + _Type_BINARY: BinaryScalar, + _Type_LARGE_BINARY: LargeBinaryScalar, + _Type_FIXED_SIZE_BINARY: FixedSizeBinaryScalar, _Type_STRING: StringScalar, + _Type_LARGE_STRING: LargeStringScalar, + _Type_LIST: ListScalar, + _Type_LARGE_LIST: LargeListScalar, + _Type_FIXED_SIZE_LIST: FixedSizeListScalar, + _Type_STRUCT: StructScalar, + _Type_MAP: MapScalar, + _Type_DICTIONARY: DictionaryScalar, + _Type_SPARSE_UNION: UnionScalar, + _Type_DENSE_UNION: UnionScalar, } -cdef object box_scalar(DataType type, const shared_ptr[CArray]& sp_array, - int64_t index): - cdef ArrayValue value - if type.type.id() == _Type_NA: - return _NULL - elif sp_array.get().IsNull(index): - return _NULL - else: - klass = _array_value_classes[type.type.id()] - value = klass.__new__(klass) - value.init(type, sp_array, index) - return value +def scalar(value, DataType type=None, bint safe=True, + MemoryPool memory_pool=None): + cdef: + PyConversionOptions options + shared_ptr[CScalar] scalar + shared_ptr[CArray] array + shared_ptr[CChunkedArray] chunked + + options.size = 1 + options.pool = maybe_unbox_memory_pool(memory_pool) + # options.from_pandas = from_pandas Review comment: Implemented it. ---------------------------------------------------------------- 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